Bueno este es un simple modulo que sirve para extraer los iconos de archivos EXE o DLL , es muy simple y funciona bien, si encuentran algun bug o algo solo reportenlo y se arreglara =) , aqui les dejo el codigo del modulo y un ejemplo de uso =)

Código: Seleccionar todo

Option Explicit

'**************************************************************
'**************************************************************
'**  Module  :  mExtractIcons                                **
'**  Author  :  Skyweb07                                     **
'**  Email   :  [email protected]                          **
'**  Date    :  03/10/2009 - 15:20                           **
'**  Purpose :  Extraer Iconos desde Archivos EXE o DLL      **
'**************************************************************
'**************************************************************

'**************************************************************
'**************************************************************
'**  APIS para dibujar los iconos                            **
'**************************************************************
'**************************************************************

Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
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 DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Public Function Extract_Icons(hFile As String, Listview As Listview, Picture As PictureBox, IL As ImageList)

Dim hCount As Long
Dim hIcon As Long
Dim i As Integer

Listview.ListItems.Clear ' // Limpiamos los Items de la Listview

Set Listview.Icons = Nothing ' // Quitamos las referencias de las imagelist de el Listview para que no de error

IL.ListImages.Clear ' // Limpiamos las imagenes de la Imagelist

Do ' // Hacemos un Loop por todos los iconos de el archivo

ExtractIconEx hFile, hCount, hIcon, 0, 1 ' // Extraemos el Icono y lo almacenamos en la variable hIcon

If hIcon = 0 Then Exit Do ' // Si retorna 0 es que no hay mas iconos entonces Salimos del bucle

With Picture

.Cls ' // Limpiamos la Picturebox
.AutoRedraw = True ' // Activamos el  AutoRedraw
.BackColor = vbWhite     ' // Le ponemos a la Imagen un color Blanco de fondo para que se vea bien en la Listview

DrawIcon .hdc, 0, 0, hIcon ' // Dibujamos el Icono
DestroyIcon hIcon ' // Destruimos el Icono para liberar el espacio utilizado en la memoria

With IL

.ListImages.Add , , Picture.Image ' // Anadimos el icono a la Imagelist
.ListImages(.ListImages.Count).Tag = .ListImages.Count & "-" & Right$(hFile, Len(hFile) - InStrRev(hFile, "\"))   ' // Anadimos el tag de la Imagen el Nombre del Archivo

End With

hCount = hCount + 1 ' // Incrementamos la variable hCount

End With

Loop ' // Bucle

If IL.ListImages.Count > 0 Then ' // Si la Imagelist tiene Iconos

Set Listview.Icons = IL ' // Le asignamos a la Listview el Imagelist

For i = 1 To IL.ListImages.Count ' // Recorremos todos los iconos de la IMagelist

Listview.ListItems.Add , , IL.ListImages.Item(i).Tag, i ' // Anadimos el Icono a la Listview

Next i ' // Icono Siguiente

End If

End Function
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Imagen
Woww... Cuando lo vi al post :O no se,era dificil entender que era posible hacerlo en Vb pero entro y Woww xD es posible yo pense que era un codigo ree complicado jaja pero parece que no :P ahora se vendrá una ola de IconExtractors broma
Working in Kmaleon Rat - 50%
Responder

Volver a “Otros lenguajes”