Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIER VOTRE APPLICATION À INTERNET EXPLORER VIA LE MENU CONTEXTUEL


Information sur le tutorial

Catégorie :Réseau & Internet Date de création : 04/07/2005 01:50:23 Vu : 10 553 fois

Note :
Aucune note

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une 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.

04 juillet 2005 02:03:56 :
.
22 septembre 2005 15:47:18 :
j'avais oublier de coller les 4 vbscripts!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
signaler à un administrateur
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+

signaler à un administrateur
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...

signaler à un administrateur
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.

signaler à un administrateur
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 =(

signaler à un administrateur
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+

signaler à un administrateur
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+

signaler à un administrateur
Commentaire de Redfire le 15/01/2006 17:31:29

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

signaler à un administrateur
Commentaire de HomeWorx le 25/01/2006 17:18:24

Super, ce petit tuto ! Merci beaucoup !

signaler à un administrateur
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 ?

signaler à un administrateur
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... ^^

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,109 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.