[R] Définir l'icône d'un fichier.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

[R] Définir l'icône d'un fichier.

#1

Message par theAvenger »

Par curiosité (je n'en ai pas vraiment l'utilité pour le moment), j'aimerais savoir comment ont défini l'icône qu'aura un fichier dans le gestionnaire de fichier (explorer). Merci de vos réponses !
Modifié en dernier par theAvenger le jeu. 20 oct. 2011 21:20, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#2

Message par sylvanie »

Bonsoir,
j'ai trouvé ceci sur le forum américain :
http://www.autoitscript.com/forum/topic ... -filetype/

regardez surtout l'exple sous forme de script, le reste étant des alternatives manuelles.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#3

Message par theAvenger »

Il faut donc inscrire dans le registre une clé qui contient le chemin et le nom de l'icone ?

Code : Tout sélectionner

RegWrite("HKEY_CLASSES_ROOT\" & [valeur de la clé de l'extension] & "\Shell\" & $cmd & "\Command\", "", "REG_SZ", [chemin\et\nom\de\l'icone\de\l'extension])
En revanche, je n'ai pas compris l'utilité de la variable $cmd.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#4

Message par sylvanie »

bonjour
$cmd réfère à l'action faite sur l'extension.
Par défaut, on a "open" sur la plus part des extensions. Ceci ouvre avec le programme associé.
Mais on peut en avoir d'autres actions cumulées comme "play", "shell" ... qui peuvent lancer d'autres exe et donc on a d'autres icônes associées à ces actions.
Par défaut on voit celle associée à "open" dans l'explorateur.
Mais à tester en étant bien réveillé car on a vite fait de mettre le bazar (de plus le script doit être lancé en admin si on a besoin de faire un write dans HKEY_CLASSES_ROOT)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#5

Message par theAvenger »

Donc, il suffira de faire

Code : Tout sélectionner

RegWrite("HKEY_CLASSES_ROOT\" & [valeur de la clé de l'extension] & "\Shell\" & [commande (open)] & "\Command\", "", "REG_SZ", [chemin\et\nom\de\l'icone\de\l'extension])
La valeur de la clé de l'extension est l'extension du fichier (.doc, .ini, .fichier, .pèrenoël), la commande c'est open (puisque l'icône doit être celle définie pour ouvrir le fichier avec un certain exécutable) et le chemin, ben, c'est le chemin de l'icône.

Je me trompe ?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#6

Message par sylvanie »

oui c'est ça (enfin dans le sens où tu ne te trompes pas)
Je viens de faire la manipulation manuellement via regedit sur un .elephant (ça pourraît être du php ^^) et ça le fait à une restriction prêt : j'ai mon icône qui est incrusté dans l'icône sous forme de page cornée ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#7

Message par theAvenger »

Heu... Ce n'est pas exactement ce que j'attendais. Peut-être en modifiant la commande (open, play, shell) ? Peut-être avec "DefaultIcon" ?
Si tu me dis comment tu as fais, je pourrais essayer aussi.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#8

Message par mikell »

Sur mon XP j'ai ça qui marche (fichier à extension .tagada) :
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#9

Message par theAvenger »

Qu'est-ce que c'est "tsointsoin" ?
Et est-ce que les doubles "\" sont nécessaires ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#10

Message par mikell »

.tagada c'est l'extension, tsointsoin c'est la classe :mrgreen:
Pour le registre, dans un .reg les \\ sont nécessaires
Dans ce cas "open" se fait avec notepad.exe
Voilà le reg complet (pour mon XP)
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#11

Message par theAvenger »

Il faut donc faire ceci en AutoIt :

Code : Tout sélectionner

RegWrite("HKEY_CLASSES_ROOT\.tagada", "", "REG_SZ", "tsointsoin")
RegWrite("HKEY_CLASSES_ROOT\tsointsoin\DefaultIcon", "", "REG_SZ", "C:\\WINDOWS\\icons\\crane.ico,0")
RegWrite("HKEY_CLASSES_ROOT\tsointsoin\shell", "", "REG_SZ")
RegWrite("HKEY_CLASSES_ROOT\tsointsoin\shell\open", "", "REG_SZ")
RegWrite("HKEY_CLASSES_ROOT\tsointsoin\shell\open\command", "", "REG_SZ", "%SystemRoot%\system32\NOTEPAD.EXE %1")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tagada", "", "REG_SZ", "Application=NOTEPAD.EXE")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tagada\OpenWithList", "", "REG_SZ", "a=NOTEPAD.EXE")
??
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#12

Message par mikell »

Oui sauf

Code : Tout sélectionner

RegWrite("HKEY_CLASSES_ROOT\tsointsoin\shell")
RegWrite("HKEY_CLASSES_ROOT\tsointsoin\shell\open")
...
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tagada", "Application", "REG_SZ", "NOTEPAD.EXE")
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tagada\OpenWithList", "a", "REG_SZ", "NOTEPAD.EXE")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#13

Message par theAvenger »

Ce sont des clé à rajouter ? Oui j'ai compris, je crois. Elles servent à dire à l'explorateur windows comment l'exécuter, c'est ça ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#14

Message par mikell »

Yes
Et si tu veux le faire tip-top, tu crées une entrée "Nouveau" dans le menu contextuel du bureau
(Nouveau => Tagada File) avec son icone
ça te crée sur le bureau un "Nouveau Tagada File.tagada" :mrgreen:
Voilà le reg modifié
► Afficher le texte
et voilà le code autoit complet
► Afficher le texte
Là-dedans, tu n'as à changer que le chemin de l'icone et l'executable pour la commande open :wink:
Note : il faut redémarrer explorer.exe pour que les modifs soient prises en compte, avec par exemple

Code : Tout sélectionner

ProcessClose("explorer.exe")
Sleep(2000)
Run("explorer.exe")
Exit
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#15

Message par theAvenger »

J'ai compris !! Merci beaucoup !!!!
Cependant, si on arrête explorer.exe, la barre des tâches, le menu démarrer, le bureau ou les dossiers ouverts ne vont pas se fermer ?
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#16

Message par TT22 »

theAvenger a écrit :Cependant, si on arrête explorer.exe, la barre des tâches, le menu démarrer, le bureau ou les dossiers ouverts ne vont pas se fermer ?
Pour le savoir, tu devrais essayer (si tu ne veux pas tester, sache que oui ça ferme tout :wink: ).
Cordialement,
TT22
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [..] Définir l'icône d'un fichier.

#17

Message par theAvenger »

J'ai testé, et effectivement, ça a tout fermé :evil:.

Il suffira de mettre un choix avec une msgbox ou de dire à l'utilisateur que "Les changements ne prendront effets qu'à la prochaine ouverture de session."

Merci de votre aide, le sujet est résolu !!
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Définir l'icône d'un fichier.

#18

Message par mikell »

Notes
- Tout ça est bon pour XP, mais probablement à adapter pour win7
- Si tu fermes explorer et le relances, les dossiers ouverts n'y sont plus mais tu dois retrouver un bureau avec icones, barre des taches, menu démarrer etc
- Plus de fonctionnalités possibles à voir ici et
Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [R] Définir l'icône d'un fichier.

#19

Message par theAvenger »

Merci beaucoup !!
Avatar du membre
theAvenger
Niveau 5
Niveau 5
Messages : 159
Enregistré le : dim. 14 nov. 2010 15:26
Localisation : Alsace
Status : Hors ligne

Re: [R] Définir l'icône d'un fichier.

#20

Message par theAvenger »

Il y a la fonction EnvUpdate() qui permet de faire comme si on se déconnectait, reconnectait. Elle évite donc d'arrêter le processus "explorer.exe".
Répondre