Menu contextuel dans l'explorateur Windows

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Menu contextuel dans l'explorateur Windows

Message 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 :(
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message 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
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message 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 ?
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message 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
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message 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
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message 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:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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:
Répondre