Menu contextuel explorer windows

cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010 - 29 juil. 2009 à 11:31
colargol7 Messages postés 2 Date d'inscription mardi 22 septembre 2009 Statut Membre Dernière intervention 4 octobre 2009 - 3 oct. 2009 à 18:48
Bonjour,

J'ai une question concernant le menu contextuel dans l'explorer windows. J'ai reussi à ajouter une entrée dans ce menu pour le type de fichier que je souhaite (à savoir un fichier .docx) en ajoutant dans le regedit la clé :
[HKEY_CLASSES_ROOT\Word.Document.12\shell\MonEntrée\command]
Avec ca, j'ai un item qui s'est ajouté au menu contextuel "MonEntrée" sur les documents .docx.

Le soucis est que je n'arrive pas à faire un sous-menu du type :
Titre
|
-> Sous menu 1
-> Sous menu 2

Si quelqu'un sait où il faut taper dans la base de registre pour effectuer un tel menu, ca m'interesse :)

16 réponses

Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
29 juil. 2009 à 13:29
Quand j'y réfléchis bien, je ne pense pas avoir jamais vu cela. As-tu un exemple d'application qui procède de la sorte ? Je ne suis pas sur que ce soit possible.

Mathieu.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 juil. 2009 à 14:07
Winrar fait ça. Mais je ne sais pas comment il fonctionne.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
29 juil. 2009 à 14:21
@Minotthor, oui je pensai à un menu du même type que winrar, 7-Zip, FileMenu Tools aussi. J'ai installé ces logiciels, mais je ne trouve pas dans la base de registre où ils ont enregistré leur infos pour ce menu, je ne vois pas comment c'est fait :/
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
29 juil. 2009 à 14:57
J'ai entendu dire (info / intox ?) que l'affichage en cascade de WinRar est fait grâce à un .exe dédié à ça.
Mais je ne peux pas t'en dire plus.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
29 juil. 2009 à 15:24
Je suis en train de surveiller les modifications que WinRAR apporte à la base de registre quand on coche l'option. Je vous informerai de mes trouvailles.

Mathieu.
0
Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
29 juil. 2009 à 15:46
Bon alors ... je ne comprends rien aux modifications apportées à la base de registre. Manifestement ce n'est pas WinRAR qui les applique directement. Par contre, j'ai trouvé ça en recherchant sur le Google le nom de certaines des clés de registre :

http://msdn.microsoft.com/en-us/library/cc144171(VS.85).aspx#static_implement_icontextmenu
In Windows 7 and later, there is support for static cascade menu implementation through registry key settings. Prior to Windows 7, cascade menus were only possible through the implementation of IContextMenu.

http://msdn.microsoft.com/en-us/library/bb776095(VS.85).aspx
En particulier IContextMenu::QueryContextMenu. Cela ressemble à une interface COM à implémenter dans une DLL qui va dynamiquement ajouter les éléments requis au menu. Encore plus fun : la document d'InsertMenu est disponible exclusivement en japonais. Amuse toi bien ...
http://msdn.microsoft.com/en-us/library/cc364791(ja-jp).aspx

Par contre, j'ai trouvé ça :
http://www.codes-sources.com/r/code.aspx?r=InsertMenuItem
En en particulier ça :
http://www.cppfrance.com/codes/EXTENSION-SHELL-MENU-CONTEXTUEL-WIN32-API_48345.aspx

Tu es toujours sur de vouloir faire cela ?
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
29 juil. 2009 à 16:07
Et bien, je vais présenter la solution au chef de projet, on verra si ça lui plait lol. Mais bon, la mise en oeuvre risque d'être plutôt longue et donc pas rentable -_-

Merci d'avoir cherché en tout cas :)
0
Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
29 juil. 2009 à 16:11
Pas de problème. Reposte si vous maintenez cette idée, je pourrai vous filer un coup de main. Ca m'intéresse de savoir comment faire.

Mathieu.
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
30 juil. 2009 à 14:31
Bon j'ai tenté de me lancer sur l'interop COM, mais bon, même avec un exemple apparement tout fait, j'arrive pas à faire fonctionner le sample :/ c'est pas évident.

L'url du tuto c'est http://www.techheadbrothers.com/Articles.aspx/interoperabilite-com-net-extension-shell-windows-appel-messenger
Perso, je peux le compiler, j'ai bien ma dll enregistré dans le BDR, mais pas de menu dans le click droit sur le shell windows.

Si quelqu'un a 5 min pour tester cette source pour avoir un petit feedback, histoire de savoir si c'est moi qui s'y prend mal ou non ^^
0
Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
30 juil. 2009 à 14:51
Je vais prendre deux heures pour essayer d'en faire un ce soir.

Mathieu.
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
31 juil. 2009 à 10:26
Bon j'ai réussi à m'en sortir, c'était l'api msn qui n'était plus bonne avec les nouvelles version (c'est un vieux sample dans l'exemple). Maintenant j'ai bien mon sous-menu dans le shell windows (il ne faut pas oublier de relancer le process explorer.exe pour que la dll charge les changements dans le shell.

Par contre, impossible de rendre la dll compatible .NET quand j'utilise visual studio 2005/2008, je n'ai réussi à faire fonctionner la dll qu'avec 2003 :/ lol. M'enfin ça avance :)
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
31 juil. 2009 à 11:13
C'est bon, j'ai réussi à trouver pourquoi, c'était mon regasm qui n'avait pas la bonne version.

J'ai maintenant mon menu fonctionnel

Merci pour l'aide, ca m'a mis sur la voie
0
Minotthor Messages postés 72 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 12 août 2009 2
1 août 2009 à 11:32
Et bien moi ... je ne suis parvenu à rien.
Par contre je ne savais pas qu'il fallait redémarrer explorer.exe ... ça pourrait expliquer des choses. Zut.

Heureux que tu y sois parvenu. Et vivement Windows 7 qui va permettre de créer des sous-menus asns dll.

Mathieu.
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
1 août 2009 à 11:35
oué mais bon, faudra toujours assurer la compatibilité avec xp/vista, donc bon...
0
cs_jashugan Messages postés 28 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 27 mai 2010
1 août 2009 à 11:36
Si tu as un soucis pour mettre en place un sous menu, n'hésite pas à me demander, ayant réussi à établir cela, je pourrai peut etre t'aider
0
colargol7 Messages postés 2 Date d'inscription mardi 22 septembre 2009 Statut Membre Dernière intervention 4 octobre 2009
3 oct. 2009 à 18:48
Bonjour,

Tout ce qui se dit ici est très intéressant

Je cherche aussi à créer un sous-menu au menu contextuel d'explorer via mon appli. C#.

J'espère que tu pourras m'aider jashugan
Pour l'instant, j'ai juste commencé à lire un peu de doc.

a+
0
Rejoignez-nous