begin process at 2012 02 17 03:21:10
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Réseau & Internet

 > LIER VOTRE APPLICATION À INTERNET EXPLORER VIA LE MENU CONTEXTUEL

LIER VOTRE APPLICATION À INTERNET EXPLORER VIA LE MENU CONTEXTUEL


 Information sur le tutoriel

Note :
Aucune note


 Description

Bon, ça fesait pas mal de temps que je cherchais à faire cela, sans succès.
Si vous ne comprenez pas ce que l'on cherche à faire, installez par exemple la google toolbar ou un téléchargeur quelconque (type flashget, etc), et voyez les liens ajoutés au clic droit. On cherche en clair, à mettre en place des plugins persos à appelé par le clic droit d'Internet Explorer.
C'est ce genre de chose que l'on cherche à faire ici.
Si un admin peut supprimer la source du même nom... je ne connaissait pas cette rubrique "tutos" !!

Tutorial

 

Introduction :

Bon, ça fesait pas mal de temps que je cherchais à faire cela, sans succès.
Si vous ne comprenez pas ce que l'on cherche à faire, installez par exemple la google toolbar ou un téléchargeur quelconque (type flashget, etc), et voyez les liens ajoutés au clic droit. On cherche en clair, à mettre en place des plugins persos à appelé par le clic droit d'Internet Explorer.

Ajouter un élément au menu est simple, mais y ajouter une action à effectuer est une autre histoire.

En effet :

1er problème : Internet explorer ne permet pas de lancer directement une application via ce menu, ce qui peut se comprendre pour une raison de sécurité.

Solution => Nous allons donc passer par une page html contenant un javascript ou un vbscript .
(ici un vbs, car on est sur vbfrance, non?).

2eme problème : Lancer une application via un script peut se faire, mais pas avec un minimum de sécurité configuré

Solution =>Nous allons donc créer un activeX intermédiaire, qui lui appellera notre application. On pourra d'ailleurs, si les besoins le permette, s'arrêter à cette étape, et tout gérer dans l'activeX, à vous de voir selon vos besoin.

 

Pour ce petit tuto, on s'arrêtera à l'activeX, car une fois que les informations sont récupérées, je pense que c'est a vous de gérer le reste :
Lancer votre application avec ces informations en argument puis gérer ces derniers selon vos besoin, ou utiliser le hooking pour détecter une instance de votre application et lui envoyer les informations.Je verrais si il est nécessaire de faire un autre tuto à ce propos, mais normalement vous avez tout ce que vous faut sur le web ^^ :)

Voyons donc tout ça concrètement, pas à pas :

 

_1ere étape : L'ajout de vos éléments au menu contextuel d'IE :

Ces informations sont à rentrer dans cette clé :
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Votre clé
Comme valeur par défaut, nous mettons le chemin complet de notre script vbs. Nous ajoutons ensuite dans cette clé, une valeur DWORD nommé « Contexts ». Cette valeur déterminera sur quels éléments notre menu doit proposer notre action :

Fenêtre : 0x1
Image : 0x2
Contrôle : 0x4
Tableaux : 0x8
Sélection de texte : 0x10
Lien : 0x20


Ces valeurs peuvent être combinées en faisant un OU logique entre les valeurs, mais pour notre exemple, nous utiliserons un type de contexte par chaîne, de manière a simplifier l'explication.

Pour notre exemple, on va créer quatre clé, qui pointeront vers 4 scripts différents. Définissez un dossier ou l'on mettra ces 4 scripts, puis créez ces 4 clé :

Clic droit sur lien :
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\test1
Default : Chemin_de_votre_dossier & "\ScriptEX1.html"
Contexts : 0x20

Clic droit n'importe ou sur la page (sur "rien"):
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\test2
Default : Chemin_de_votre_dossier & "\ScriptEX2.html"
Contexts : 0x1

Clic droit sur du texte selectionné :
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\test3
Default : Chemin_de_votre_dossier & "\ScriptEX3.html"
Contexts : 0x10

Clic droit sur une image :
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\test4
Default : Chemin_de_votre_dossier & "\ScriptEX4.html"
Contexts : 0x2


Voila, lancez une nouvelle fenêtre Internet Explorer, et testez. Si vous avez tout bien rentré, un élément s'ajoute au menu contextuel lorsque vous faites un clic droit sur les éléments suivant : Liens, Fenêtre, Sélection de texte et Images. Ces derniers ne sont bien sur pas encore fonctionnels, mais visibles.

_2eme étape : Création de l'activeX :

Ouvrez donc visual basic et créer un nouveau projet DLL activeX , que vous nommerez EXCOM.
Copiez cette procédure dans la classe crée par défaut "Class1":

Sub Principal(ByVal str As String)
MsgBox str
End Sub

Compilez avec comme nom de fichier : EXCOM.dll
Et oui, on ne va pas plus loin, ceci n'est qu'un exemple, le but étant d'accéder aux informations envoyés par IE. Voyons donc la suite =)


_3eme étape : Création des scripts VBS :

Ouvrez un éditeur de texte, et copier ces 4 codes :

1er script (gestion des liens): scriptEX1.html
<SCRIPT LANGUAGE="VBScript">
'gestion des liens
set Readah=CreateObject("EXCOM.Class1")
a=external.menuArguments.event.srcElement.innerText 'texte du lien
b=external.menuArguments.event.srcElement.href 'url du lien
call Readah.Principal("Texte du lien : " & a & vbcrlf & "Url du lien : " & b & vbcrlf)
</SCRIPT>

2eme script (clic sur la fenetre, « dans le vide ») : scriptEX2.html
<SCRIPT LANGUAGE="VBScript">
'Gestion fenetre
set Readah=CreateObject("EXCOM.Class1")
a=external.menuArguments.location.hostname 'nom d'hote
b=external.menuArguments.location.href 'url en cours
c=external.menuArguments.event.srcElement.innerText 'texte de la page
call Readah.Principal("Hote : " & a & vbcrlf & "Url en cours : " & b & vbcrlf & " Texte de la page : " & c & vbcrlf)
</SCRIPT>

3eme script (clic sur un texte selectionné) : scriptEX3.html
<SCRIPT LANGUAGE="VBScript">
'gestion texte selectionné
set Readah=CreateObject("EXCOM.Class1")
d=window.external.menuArguments.document.selection.createRange().text 'texte selectionné
call Readah.Principal("Texte Selectionné : " & d & vbcrlf)
</SCRIPT>


4eme script (clic sur une image) : scriptEX4.html
<SCRIPT LANGUAGE="VBScript">
'gestion image
set Readah=CreateObject("EXCOM.Class1")
a=external.menuArguments.event.srcElement.href 'url de l'image
call Readah.Principal("Url de l'image : " & a & vbcrlf)
</SCRIPT>

Copiez ces 4 fichier dans le dossier que vous avez défini à l'étape 1

_4eme étape : Mise en place de l'activeX

Exécuter la commande regsvr32 pour registrer votre activeX :

regsvr32 "Chemin_du_dossier_contenant_la_dll\EXCOM.dll"


Et voila, lancez une nouvelle instance d'Internet explorer, et testez. Il ne vous reste plus qu'à personnaliser tout ça pour l'utiliser à votre guise. J'espère que cela vous sera utile.

 Historique

04 juillet 2005 02:03:56 :
.
22 septembre 2005 15:47:18 :
j'avais oublier de coller les 4 vbscripts!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Commentaires

Commentaire de P__ROMEO le 22/09/2005 15:27:59

J’avoue que quand j'ai lu le titre, j'ai vu beaucoup plus grand. Mais, il faut avouer, ce tutorial est utile.
Moi, il m’est utile. Et te remercie de l'avoir partagé. En plus, c'est si simple (bien expliqué) que même les débutants comme moi, ne se perdrons pas.
A+

Commentaire de hvb le 22/09/2005 15:51:12

merci bcp, mais je viens juste de voir, grâce a ton commentaire, que j'avais oublier de copier les 4 vbscripts de l'etape 3.... !!! Je viens de mettre à jour, mais ça met toujours un peu de temps sur CS...

Commentaire de P__ROMEO le 22/09/2005 16:04:43

donc la, ca rend un peu plus compliqué. mais, c'est pas grave, si il le faut pour que ca marce.
en fait, je n'ai pas encore essayé, c'est pour ca que je n'ai pas pu te dire que quelquechose manquait.
Merci. dès que j'esai, je te fais signe.
Et, merci pour la mise a jour.

Commentaire de hvb le 22/09/2005 17:32:09

Non ce ne sont que les 4 exemples de script "intermediaires" qui montre les differentes façon d'agir via IE. (clic droit sur du texte, une image, un lien...)

...ce qui est indispensable au tuto... =/ comme quoi les 1200 personne qui ont affiché la page à ce jour semblent ne pas l'avoir lu... merde =(

Commentaire de P__ROMEO le 22/09/2005 21:59:08

ou peut être qu'ils l'on lu, mais n'ont pas voulu poser des questions. (ils avaient honte de paraitre
débutant) :(  Mais bon, ils sont maintenant 1225 à avoir fait un point d'arret sur ton tuto.
et, quand j'ai di que c'est devenu plus compliqué avec ta mise a jour, c'était pour rire.
t'inquiètes pas. je cherche à apprendre un maximum, ce n'est donc pas des lignes en plus dans un tuto
qui me font peure.
A+

Commentaire de P__ROMEO le 22/09/2005 21:59:10

ou peut être qu'ils l'on lu, mais n'ont pas voulu poser des questions. (ils avaient honte de paraitre
débutant) :(  Mais bon, ils sont maintenant 1225 à avoir fait un point d'arret sur ton tuto.
et, quand j'ai di que c'est devenu plus compliqué avec ta mise a jour, c'était pour rire.
t'inquiètes pas. je cherche à apprendre un maximum, ce n'est donc pas des lignes en plus dans un tuto
qui me font peure.
A+

Commentaire de Redfire le 15/01/2006 17:31:29

Assez utile, bon tuto, clair, précis et avec des exemples :)
Merci

Commentaire de HomeWorx le 25/01/2006 17:18:24

Super, ce petit tuto ! Merci beaucoup !

Commentaire de JPPry le 07/05/2007 09:51:37

1er problème : Internet explorer ne permet pas de lancer directement une application via ce menu, ce qui peut se comprendre pour une raison de sécurité.

Ok, dans ce cas, comment se fait il que je trouve ceci dans ma base de registre ?
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MenuExt\E&xporter vers Microsoft Excel]
@="res://C:\\PROGRA~1\\Microsoft Office\\Office12\\EXCEL.EXE/3000"
"Contexts"=dword:00000001
serait il possible de lancer directement un executable ?

Commentaire de hvb le 07/05/2007 11:23:39

merci pour tout vos commentaires.

JPPry : Je ne me suis jamais repenché sur le sujet, étant donné que ma méthode me suffisait (si j'ai un autre exe à lancer, je le lance depuis ma dll).
Normalement avec la sécurité par défaut ce n'est pas possible, dans ton exemple, c'est excel qui est appelé, peut être que les logiciels microsoft ont un traitement de faveur... ^^

Commentaire de ayarikhaoula le 23/12/2010 10:08:42

merci pour ce ché d'euvre.
mon problème et que je veu juste détecter la sélection sur une zone texte pas la sélection et le clique.
merci de me contacter si vous avez une idée.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales