Extraire les Icons

Messages postés
62
Date d'inscription
jeudi 12 avril 2001
Statut
Membre
Dernière intervention
25 septembre 2007
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
Salut

Voila je fais un programme pour extraire des icons
je voudrais savoir si il y a un moyen de mettre moins de code,(Code que je met ci dessous).
Et je voudrais pouvoir les extraire pour les sauver
en bmp ou en gif.
Merci pour la reponse
Bye
@+

' Extraire les icônes d'un exécutable
Dim FichierExtraction As String
Dim NbIcon As Long
Dim Handle As Long ' Adresse pointée par ExtractIcon
Dim X As Long ' Retour

' Les API
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, _
ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" _
(ByVal hInst As Long, ByVal lpszExeFileName As String, _
ByVal nIconIndex As Long) As Long

Private Sub Command1_Click()
' Demande du fichier
FichierExtraction = InputBox$("Fichier contenant l'icône à extraire (.ICO,.EXE,.DLL):", _
"Extraction d'icône", App.Path & "" & App.EXEName & ".exe")
If FichierExtraction = vbNullString Then Exit Sub
' Initialise
Picture1.Cls
Picture2.Cls
Picture3.Cls
Picture4.Cls
Picture5.Cls
Picture6.Cls
Picture7.Cls
Picture8.Cls
Picture9.Cls
Picture10.Cls
Picture11.Cls
Picture12.Cls
Picture13.Cls
Picture14.Cls
' Retourne le nombre d'icône contenu par le fichier
' Le -1 est important : il déclenche l'option de "comptage" des icônes
NbIcon = ExtractIcon(Handle, FichierExtraction, -1)Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)
' Extraction et dessine l'icône
' Le premier icône est indexé en 0
NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 1)
X = DrawIcon(Picture1.hdc, 0, 0, NbIcon)

' Retourne le nombre d'icône contenu par le fichier
' Le -1 est important : il déclenche l'option de "comptage" des icônes
NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)
' Extraction et dessine l'icône
' Le premier icône est indexé en 0
NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 2)
X = DrawIcon(Picture2.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 3)
X = DrawIcon(Picture3.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 4)
X = DrawIcon(Picture4.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 5)
X = DrawIcon(Picture5.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 6)
X = DrawIcon(Picture6.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 7)
X = DrawIcon(Picture7.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1)Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 8)
X = DrawIcon(Picture8.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 9)
X = DrawIcon(Picture9.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 10)
X = DrawIcon(Picture10.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 11)
X = DrawIcon(Picture11.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 12)
X = DrawIcon(Picture12.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 13)
X = DrawIcon(Picture13.hdc, 0, 0, NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, -1) Label1.Caption "Nombre d'icône a extraire " & Str$(NbIcon)

NbIcon = ExtractIcon(Handle, FichierExtraction, NbIcon - 14)
X = DrawIcon(Picture14.hdc, 0, 0, NbIcon)

End Sub

1 réponse

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Va faire un tour dans mes sources. Celle nommée Nouvelle Icône (version alpha) risque d'intéressé au plus haut point.

DARK SIDIOUS