PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Récupérer Icone d'une fichier (exe, dll, bat, ini, ....)
Récupérer Icone d'une fichier (exe, dll, bat, ini, ....)
Débuté par François BERDEAUX, 26 juin 2008 18:25 - 3 réponses
Posté le 26 juin 2008 - 18:25
Bonjour,
J'ai retourné le forum, cherché dans les lst, mais sans succès.
Je cherche a récupérer avec API ou sans, l'icone d'un fichier.
Par exemple je sélectionne l'exe de NotePad, et je recupère dans un champs image l'icone de NotePad.exe .

Merci pour votre aide
Posté le 27 juin 2008 - 17:07
Bonjour,

Je crois qu'il faut rechercher du cote de l'API SHGetFileInfo

Bonne journée
Vincent
http://vroy1.free.fr
Posté le 01 juillet 2008 - 12:28
Bonjour,

Le code suivant :

szfich est une chaîne ASCIIZ sur 260 = SAI_FIC
hicon est un entier = ExtraitIcone(szfich,0)
SI hicon<>0 ALORS
DrawIcon("IMG_Image1",hicon)
DestroyIcon(hicon)
FIN

// Extrait une icone à partir d'un fichier exécutable, une DLL ou un fichier de ressources
// szExeFileName [in] : Nom du fichier
// nIconIndex [in] : Index de l'icone à retrouver (0 pour 1ère icone)
// Renvoie le handle de l'icone extraite
Procedure ExtraitIcone(szExeFileName est une chaîne, nIconIndex est un entier)
hinst est un entier système = Handle()
hIcon est un entier système
hIcon = API("shell32.dll", "ExtractIconA", hinst, szExeFileName, nIconIndex)
RENVOYER hIcon

// Affiche une icone dont le handle est connu dans un champ image
// sNomImage [in] : Nom de l'image
// hicon [in] : handle de l'icone à afficher
Procedure DrawIcon(sNomImage,hicon)
{sNomImage,indChamp}..Visible=Faux
nHdc est un entier = dDébutDessin(sNomImage
API("user32","DrawIcon", nHdc,0,0,hicon)
{sNomImage,indChamp}..Visible=Vrai

// Destroys an icon and frees any memory the icon occupied
// hicon [in] : Handle to the icon to be destroyed
Procedure DestroyIcon(hicon)
API("User32","DestroyIcon",hicon)


Récupère la première icone d'un fichier exe ou dll et l'affiche dans le champ image "IMG_Image1".

Pour plus de détails sur les pramètres à utiliser voir sur MSDN :
http://msdn.microsoft.com/fr-fr/default.aspx


A+
--
Francis MOREL
Posté le 02 juillet 2008 - 19:28
Bonjour,

Merci pour cet extrait de code qui fonctionne à merveille !!!

François BERDEAUX