Page 1 sur 1

Menu contextuel dans l'explorateur Windows

Publié : mer. 26/sept./2007 12:25
par Golfy
Cherchant à faire un programme qui change l'icône d'un dossier lors d'un clic droit dans l'explorateur, j'ai trouvé un code (relativement compliqué) à compiler en dll :
Forum Anglais, section Trick's & Tips

Une méthode plus simple est la suivante...

La méthode pour les dossiers :
Ouvrir l'éditeur de registre Regedit
Ouvrir la clé HKEY_CLASSES_ROOT\Folder\shell
Créer une sous-clé nommée Function_du_programme
Créer une sous-clé nommée command
Changer la valeur par défaut par chemin+program_name "%1"

Le programme doit accepter le passage de paramètre, c.à.d qu'il faut utiliser SelectedFile$ = ProgramParameter()

La méthode pour les fichiers est similaire :
Ouvrir la clé HKEY_CLASSES_ROOT\*
Créer une sous-clé nommée shell
Créer une sous-clé nommée Ouvrir avec programme
Créer une sous-clé nommée command
Changer la valeur par défaut par chemin+program_name "%1"

Il suffit donc d'utiliser les fonctions d'édition de clé de registre de Purebasic... que je cherche en ce moment :(

Publié : mer. 26/sept./2007 12:36
par Patrick88
va voir ce post, y'a plus simple et sans passer par la base de registre
http://www.purebasic.fr/french/viewtopi ... highlight=

patrick

Publié : mer. 26/sept./2007 13:18
par Golfy
Patrick88 a écrit :va voir ce post, y'a plus simple et sans passer par la base de registre
http://www.purebasic.fr/french/viewtopi ... highlight=

patrick
Merci Patrick pour le code (j'aurai buté moi aussi sur le refresh et le besoin de "ProcedureReturn PathMakeSystemFolder_(FolderName)"

Cependant, comment inscris-tu ton programme dans le menu contextuel de Windows Explorer ?

Publié : mer. 26/sept./2007 13:52
par Patrick88
pour la zone "envoyez vers" il suffit d'ajouter le programme dans le dossier "send to" de ton compte utilisateur

pour ton problème particulier je ne vois pas ...

pat

Publié : mer. 26/sept./2007 17:28
par Golfy
Bon, j'ai finalement fait une version 1.0 de mon "gestionnaire de projets"
L'installateur est Forgesoft Install (fait en PureBasic, http://www.installforge.forgesoft.net/)

Une fois installé (dans c:\Program Files\Gestion_de_Projet) et la clé de registre (cf. message ci-dessus) validé, il suffit de faire un clic droit sur n'importe quel répertoire et de sélectionner [Gestion_de_Projet].

Un liste déroulante apparait :
sélectionner un état de projet (autre que celui préselectionné... désolé j'ai pas encore tout réglé) et fermer la boite de dialogue.
L'icône du dossier change.

Petite astuce : en passant la souris sur le dossier (dans le cadre de droite de l'explorateur), l'état du projet s'affiche en infobulle :)

Le code est inclut dans le zip, les icones sont dans l'autoinstall et la clé de registre est dans un fichier reg.

Télécharger le zip

Publié : mer. 26/sept./2007 17:38
par Kwai chang caine
J'ai fait tout comme tu m'a dit, mais j'ai l'impression que ça vire l'icone du repertoire sur lequel tu lance ton prog 8O
W2000

Publié : mer. 26/sept./2007 17:54
par Golfy
*Don't panic*
Il suffit d'effacer le fichier caché 'desktop.ini' dans le répertoire que tu as 'testé' mais avant, tu peux vérifier si le chemin de l'icone correspond à l'emplacement de mon programme (normalement, c:\Program Files\Gestion_de_Projet\i_xxx.ico) en éditant avec le notepad le fichier desktop.ini

J'ai testé sur plusieurs machines XP sans problème mais je ne sais pas si Microsoft utilise le même système sous W2000 et inférieur... :(

Pour les icônes, j'ai utilisé ICOFX qui fait des icônes multi-système (XP, 256 coul., 16 coul., 16x16, 24x24, 32x32, 48x48, 96x96). J'ai pris soins de ne pas en oublier, mais toujours pareil, je ne sais pas si tout les OS savent lire les fichiers ico ainsi générés... :roll:

Publié : mer. 26/sept./2007 19:07
par Kwai chang caine
J'ai encore fait tout ce que tu m'as dit.

1/ Je n'ai pas paniqué :roll:

2/ J'ai éffacé le fichier

Et ç'est redevenu comme avant :D
Je te remercie pour le SAV mieux que darty :wink: