| En fonction de son extension, on peut obtenir l`icone associé de cette manière :
// Syntaxe :
//IconeAssociéeFichier (<sNomFichier>, <sNomChampImage>)
////Dessine dans un champ image l`icone associée à un type de fichier
// Paramètres :
// sNomFichier : nom d`un fichier contenant une extension , on peut ne préciser que l`extension
// sNomChampImage : Nom du champ image dans laquelle l`icone doit être dessinée
// Valeur de retour :
// Aucune
PROCEDURE IconeAssociéeFichier(sNomFichier,sNomChampImage)
sExtension est une chaîne
sNomProgramme est une chaîne
nHndIcone est un entier
SI sNomFichier = "" OU sNomChampImage = "" ALORS
RETOUR
FIN
sExtension = Minuscule("."+ExtraitChaîne(sNomFichier,ChaîneOccurrence(sNomFichier, ".")+1,"."))
sNomProgramme = RegistreLit("HKEY_LOCAL_MACHINESOFTWAREClasses"+sExtension,"")
sNomProgramme = RegistreLit("HKEY_LOCAL_MACHINESOFTWAREClasses"+sNomProgramme+"shellopencommand","")
//HKEY_CLASSES_ROOTWinDev.Projet.10.0ShellopenCommand
sNomProgramme = Minuscule(sNomProgramme)
SI Position(sNomProgramme,"%systemroot%") <> 0 ALORS
sNomProgramme = Remplace(sNomProgramme,"%systemroot%",SysRep())
FIN
sNomProgramme = SansEspace(ExtraitChaîne(sNomProgramme,1,"%"))
//Suppression des guillemets :
sNomProgramme = Remplace(sNomProgramme,"""""","")
sNomProgramme = Remplace(sNomProgramme,Caract(34),"")
sNomProgramme = SansEspace(sNomProgramme)
// Appel d`api pour récupérer le handle de l`icone de l`executable
nHndIcone = API("SHELL32","ExtractIconA",SysInstance(),sNomProgramme,0)
nHandleChpImage est un entier
nHandleChpImage = dDébutDessin(sNomChampImage)
API("user32","DrawIcon",nHandleChpImage,0,0,nHndIcone)
|