cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015
-
18 mai 2007 à 09:04
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015
-
19 mai 2007 à 17:26
Bonjour,
Pour la source http://www.csharpfr.com/codes/EXPLORATEUR-FICHIER-CONTROLE_42700.aspx j'ai besoin de charger le menu contextuel windows de mes fichiers. J'y arrive pour mes répertoires (encore que ça ne me convienne pas pleinement) mais pas pour mes fichiers.
J'utilise actuellement l'API shell32, mais il me manque de quoi lire les menus des fichiers. A part lire dans la registry, y a-t-il une autre solution ?
Voici le code que j'utilise actuellement :
if (menu == null) {
menu = new ContextMenu();
Verbs = new Dictionary<string, Shell32.FolderItemVerb>();
objShell = new Shell32.ShellClass();
objFolder2 = (Shell32.Folder2)objShell.NameSpace(path); // <-- ca plante ici si je spécifie un fichier, ça marche dans le cas d'un répertoire
if (objFolder2 != null) {
Shell32.FolderItem objFolderItem;
objFolderItem = objFolder2.Self;
/// etc. etc.
Merci d'avance,
Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 18 mai 2007 à 09:55
chercher l'erreur :
try {
Shell32.Shell objShell;
Shell32.Folder2 objFolder2; objShell = new Shell32.ShellClass();
obj Folder 2 = (Shell32.Folder2)objShell.NameSpace(path); // <-- ca plante ici si je spécifie un fichier, ça marche dans le cas d'un répertoire
if (objFolder2 != null) {
Shell32.FolderItem objFolderItem;
objFolderItem = objFolder2.Self;
/// etc. etc.
le mieux reste biensûr de parcourir la base de registre.
cs_Warny
Messages postés473Date d'inscriptionmercredi 7 août 2002StatutMembreDernière intervention10 juin 2015 18 mai 2007 à 10:00
Je sais bien que l'objet s'appelle folder2. Le problème, c'est qu'il est présenté pour fonctionner pour les fichiers d'un côté, et seulement pour les répertoires de l'autre. Le fait est qu'il ne fonctionne que pour les répertoires. Or il n'existe pas d'objet Shell32.File qqchose.
Le problème du parcours de la registry, c'est qu'il est possible de créer des menus dynamiques grâce à des dll que je ne sais pas appeler.
Console.Out.WriteLine("Warny")
Il y a 10 types de personnes
Ceux qui comptent en binaire... et les autres