PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Icones des fichiers dans windows
Icones des fichiers dans windows
Iniciado por exkael, 21,ene. 2005 23:40 - 3 respuestas
Publicado el 21,enero 2005 - 23:40
Bonjour,

peut-on récupérer l'icone associée à un fichier si l'on fournit l'emplacement du dit fichier ?

Par exemple, si je donne "c:\test.doc", est-ce que je peux récupérer l'icone de word ?
Publicado el 22,enero 2005 - 11:21
Salut, voici un de mes post du 16 décembre dernier

Salut,
Pour l'exemple tu as besoin d'un champ image de dimension 38x38 nommé Image1
et d'une table nommée Table1 avec une colonne nommée colonne1 de type image

//DÉBUT DU CODE
SHFILEINFO est une structure
hIcon est un entier //Type C : HICON
iIcon est un entier //Type C : int
dwAttributes est un entier //Type C : DWORD
szDisplayName est une chaîne fixe sur 260 //Type C : TCHAR
szTypeName est une chaîne fixe sur 80 //Type C : TCHAR
FIN
sh_info est un SHFILEINFO
// Extraire l'icône associé au raccourci Windev
// et l'afficher dans une fenêtre
hDC est un entier
hInst est un entier
strChemin est une chaîne

// récupére le "Device Context" de l'image
hDC = dDébutDessin(Image1)
// sélection du fichier pour lequel on veut l'icône...
strChemin = fSélecteur(SysRep(srBureau), "", "Sélectionnez un
fichier...","Tous fichiers (*.*)"+TAB+"*.*", "*", fselOuvre+fselExiste)
// extraction de l'icône
iRetour est un entier =
API("shell32","SHGetFileInfo","."+fExtraitChemin(strChemin,fExtension)+Caract(0),128,&sh_info,Dimension(sh_info),256+16)
SI iRetour <> -1 ALORS
// affichage de l'icône
API("user32", "DrawIcon", hDC, 1, 1, sh_info:hIcon)
API("user32", "DestroyIcon", sh_info:hIcon)

// permet l'affichage dans la zone hIconAFF (sinon l'icône est manipulable
dcopie... mais ne s'affiche pas?)
dRedimensionne(Image1,Image1..Largeur,Image1..Hauteur)
FIN

strRetour est une chaîne = dSauveImageBMP(Image1,enMémoire)
tablesupprimetout(table1)
TableAjouteLigne(Table1)
Table1.Colonne1[1] = strRetour
//FIN DU CODE
Il ne te reste plus qu'à jouer avec la couleur de fond du champ image et
celui de ta table

Mathieu


"exkael" <exkael@hotmail.com> a écrit dans le message de news:
41f16c55@news.pcsoft.fr...

Bonjour,

peut-on récupérer l'icone associée à un fichier si l'on fournit
l'emplacement du dit fichier ?

Par exemple, si je donne "c:\test.doc", est-ce que je peux récupérer
l'icone de word ?
Publicado el 22,enero 2005 - 13:27
Salut

Pour connaitre l'icone associé à un type de fichier, il faut trifouiller la
base de registre:

HKEY_CLASSES_ROOT\<.EXT>
La valeur par défaut contient un nom, par exemple <"MonType.EXT">

Il faut ensuite aller lire la clé HKEY_CLASSES_ROOT\<"MonType.EXT">
Dans cette clé il y a une sous-clé "DefaultIcon"
La valeur par défaut de cette clé contient le chemin de l'icone.

Si un c'est un .ICO directement, c'est facile de récupérer l'icone
Sinon, il faut appeler l'API ExtractIcon en lui donnant la valeur lu dans la
BDR avec l'indice spécifié.

Sinon, il y a un peu plus simple :
l'API ExtractAssociatedIcon....

Tout ca à fait l'objet d'un exemple LST il y a quelques temps déjà : WD7
Extraction Icone
il marque aussi après migration en 9, j'ai essayé

@+
Maax°(51)°

"exkael" <exkael@hotmail.com> a écrit dans le message de news:
41f16c55@news.pcsoft.fr...

Bonjour,

peut-on récupérer l'icone associée à un fichier si l'on fournit
l'emplacement du dit fichier ?

Par exemple, si je donne "c:\test.doc", est-ce que je peux récupérer
l'icone de word ?
Publicado el 25,enero 2005 - 18:22
Super cet algo, ça marche très bien.

Mais peut-on récupérer le nom et le chemin de l'icone au lieu de la dessiner ?