Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Icono del menú de inicio

Estas en el tema de Icono del menú de inicio en el foro de Visual Basic clásico en Foros del Web. Hola a tod@s! Desearía conseguir los iconos del menú de inicio para después sacarlos en pantalla. Resulta que he hecho un programa con Visual Basic ...
  #1 (permalink)  
Antiguo 10/05/2005, 02:27
 
Fecha de Ingreso: julio-2003
Ubicación: Donostia-San Sebastián
Mensajes: 129
Antigüedad: 20 años, 9 meses
Puntos: 0
Icono del menú de inicio

Hola a tod@s!
Desearía conseguir los iconos del menú de inicio para después sacarlos en pantalla. Resulta que he hecho un programa con Visual Basic 6.0 que me saca un listado de los programas que están en el menú de inicio y me gustaría añadirles a cada uno su icono correspondiente. Alguien sabe cómo podría conseguirlos?

Gracias
  #2 (permalink)  
Antiguo 11/05/2005, 16:35
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Si sabes la Ruta del Acceso Directo será fácil

Private Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long
Private Declare Function ImageList_Draw Lib "comctl32.dll" (ByVal himl&, ByVal i&, ByVal hDCDest&, ByVal X&, ByVal y&, ByVal flags&) As Long
Private Const SHGFI_SYSICONINDEX = &H4000 ' get system icon index
Private Const SHGFI_LARGEICON = &H0 ' get large icon
Private Const ILD_TRANSPARENT = &H1
Private shinfo As SHFILEINFO
Private xPixels As Integer
Private yPixels As Integer
Private Const MAX_PATH = 260
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type
Private Sub Form_Load()
xPixels = Screen.TwipsPerPixelX
yPixels = Screen.TwipsPerPixelY
IconoGrande "D:\Documents and Settings\All Users\Menú Inicio\Programas\Microsoft Visual Basic 6.0\Microsoft Visual Basic 6.0.lnk"
'Acceso Directo de Ejemplo (te devolverá el ícono de vb)
End Sub
Sub IconoGrande(Path As String)
Dim himl As Long
Dim lpzxExeName As String
Dim nRet As Long
Dim picLeft As Long
Dim picTop As Long
lpzxExeName = Path
himl = SHGetFileInfo(lpzxExeName, 0&, shinfo, Len(shinfo), SHGFI_SYSICONINDEX Or SHGFI_LARGEICON)
picLeft = (Picture1.ScaleWidth / xPixels) / 2 - 16
picTop = (Picture1.ScaleHeight / yPixels) / 2 - 16
Picture1.Picture = LoadPicture()
Picture1.AutoRedraw = True
nRet = ImageList_Draw(himl, shinfo.iIcon, Picture1.hDC, picLeft, picTop, ILD_TRANSPARENT)
Picture1.Refresh
End Sub

Te devolverá en el Picture1 el ícono
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/05/2005, 04:28
 
Fecha de Ingreso: julio-2003
Ubicación: Donostia-San Sebastián
Mensajes: 129
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias por tu ayuda. Esto funciona perfectamente, y esto era lo que necesitaba.
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:17.