Menu contextuel explorer windows

Signaler
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010
-
Messages postés
2
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
4 octobre 2009
-
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

Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
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.
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
48
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é ! -
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

@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 :/
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
48
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é ! -
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
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.
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
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 ?
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

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 :)
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
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.
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

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 ^^
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
Je vais prendre deux heures pour essayer d'en faire un ce soir.

Mathieu.
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

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 :)
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

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
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
12 août 2009
2
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.
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

oué mais bon, faudra toujours assurer la compatibilité avec xp/vista, donc bon...
Messages postés
28
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
27 mai 2010

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
Messages postés
2
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
4 octobre 2009

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+