PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Comment remplacer l'icone d'un répertoire Windows par programmation
Comment remplacer l'icone d'un répertoire Windows par programmation
Débuté par Jean Turcotte, 29 avr. 2025 14:44 - 6 réponses
Membre enregistré
1 282 messages
Posté le 29 avril 2025 - 14:44
Bonjour, remplacer l'icone d'un répertoire Windows, c'est facile avec Propriété du repertoire mais peut-on le faire par programmation?

J'ai fouillé sur le Net mais il semble que ce soit impossible. Pourtant même les répertoires de Windev ont leur propre icone.

--
Jean Turcotte
WX 2025
Membre enregistré
871 messages
Posté le 29 avril 2025 - 15:42
Membre enregistré
1 282 messages
Posté le 30 avril 2025 - 14:08
Cédric_34 a écrit :


Bonjour Cedric, j'ai essayé mais sans succes!

--
Jean Turcotte
WX 2025
Membre enregistré
871 messages
Posté le 30 avril 2025 - 14:39
Juste au cas où, avez-vous appliqué la dernière recommandation (#4) ?
Membre enregistré
248 messages
Posté le 30 avril 2025 - 14:53
Bonjour,

Voici un exemple de code que j'utilise et qui fonctionne

Cela suppose que le dossier "C:\ProgramData\Clients\" existe et que l’icône "client.ico" est inclu dans la bibliothèque de l'exécutable

CustomizeFolderIcon("C:\ProgramData\Clients\",Vrai,"client.ico","Dossiers clients")

PROCEDURE INTERNE CustomizeFolderIcon(sFolder, bConfirmFileOp, sIconeFile, sInfoType)
SI PAS fRépertoireExiste(sFolder) ALORS RENVOYER Faux
fAttribut(sFolder,"DS") // Dossier système
fExtraitRessource(sIconeFile,sFolder+sIconeFile)
INIEcrit(".ShellClassInfo","ConfirmFileOp",NumériqueVersChaîne(bConfirmFileOp),ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","NoSharing","0",ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","IconFile",AnsiVersUnicode(sIconeFile),ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","IconIndex","0",ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","InfoTip",AnsiVersUnicode(sInfoType),ComplèteRep(sFolder)+"Desktop.ini")
fAttribut(sFolder+"Desktop.ini","HS") // Fichier Desktop.ini --> Caché + Système
RENVOYER Vrai
FIN


Fabrice
Membre enregistré
871 messages
Posté le 30 avril 2025 - 21:56
Le code converti par Fabrice N pourrait bien confirmer que Attrib (le #4) n'a pas été appliqué.
Cdlt
Membre enregistré
1 282 messages
Posté le 01 mai 2025 - 14:27
Fabrice N a écrit :
Bonjour,

Voici un exemple de code que j'utilise et qui fonctionne

Cela suppose que le dossier "C:\ProgramData\Clients\" existe et que l’icône "client.ico" est inclu dans la bibliothèque de l'exécutable

CustomizeFolderIcon("C:\ProgramData\Clients\",Vrai,"client.ico","Dossiers clients")

PROCEDURE INTERNE CustomizeFolderIcon(sFolder, bConfirmFileOp, sIconeFile, sInfoType)
SI PAS fRépertoireExiste(sFolder) ALORS RENVOYER Faux
fAttribut(sFolder,"DS") // Dossier système
fExtraitRessource(sIconeFile,sFolder+sIconeFile)
INIEcrit(".ShellClassInfo","ConfirmFileOp",NumériqueVersChaîne(bConfirmFileOp),ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","NoSharing","0",ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","IconFile",AnsiVersUnicode(sIconeFile),ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","IconIndex","0",ComplèteRep(sFolder)+"Desktop.ini")
INIEcrit(".ShellClassInfo","InfoTip",AnsiVersUnicode(sInfoType),ComplèteRep(sFolder)+"Desktop.ini")
fAttribut(sFolder+"Desktop.ini","HS") // Fichier Desktop.ini --> Caché + Système
RENVOYER Vrai
FIN


Fabrice


Merci à vous, ça fonctionne très bien.

--
Jean Turcotte
WX 2025