Extraction des icones d'un fichier .exe

Contenu du snippet

La code utilise l'api windows pour extraire les icones d'une executable (metadata).

On doit ajouter les composants suivants sur le formulaire
- un bouton pour effectuer l'operation nommee openbtn.
- un label pour afficher le nom de l'exe (nommee namelbl).
- un label pour afficher le nombre d'icones (nommee total).
- un composant ImageList pour sauvgarder les icones nommee img.

Source / Exemple :


Dim a As New OpenFileDialog

Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As IntPtr, ByVal lpszExeFileName As String, ByVal nIconIndex As Integer) As IntPtr

Private Sub opebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles opebtn.Click
   namelbl.Text = "File name : " & a.FileName
   a.Filter = "Win32 PE Files (*.Exe,*.Dll,*.Scr,*.cpl)|*.exe;*.dll;*.scr;*.cpl"
   If a.ShowDialog = Windows.Forms.DialogResult.OK Then
     Dim Handler As IntPtr
     'On passe -1 pour lire le nombre d'icones
     Handler = ExtractIcon(Me.Handle, a.FileName, -1)
     If Handler.ToInt32 = 0 Then
        MsgBox("Pas d'icones dans le fichier selectionne.....", MsgBoxStyle.Exclamation, "Error")
        Exit Sub
     End If
     total.Text = "Total icons : " & Handler.ToInt32
     img.Images.Clear()
     Dim i As Integer
     'On prend le nombre d'icones.
     i = Handler.ToInt32
     For i = 1 To i
       'La fonction retourne un  handle pour l'icone.
       'On lui passe: le handle de la fenetre, le nom de fichier et l'index de l'icone.
       Handler = ExtractIcon(Me.Handle, a.FileName, i - 1)
       img.Images.Add(i, System.Drawing.Icon.FromHandle(Handler))
     Next
   End If
End sub

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.