none
¿ Cómo obtener los iconos de Mi Equipo? RRS feed

  • Pregunta

  • Hola:

    Quiero obtener los iconos que se muestran en el explorador de Windows para meterlos en un ImageList:

    ¿ Como los puedo obtener mediante programación en .NET (vb.net o c#)?

    Un saludo

    

    miércoles, 9 de enero de 2019 10:56

Todas las respuestas

  • ¿Te refieres a encontrar esos iconos? Hay muchas páginas de iconos en la web.

    Esta es una


    Saludos, Javier J

    miércoles, 9 de enero de 2019 11:22
  • No, me refiero a 'leer' el icono por programa, al estilo de:

    Drawing.Image.FromFile(<nombrefichero>)

    Drawing.Icon.FromHandle(hIcon).ToBitmap

    Es 'obtener' los iconos de Windows que corresponden a los elementos especiales que se muestran en el explorador de windows:

    'Este Equipo' <= este también

    Descargas, Documentos, Escritorio, Imagenes, Musica, Videos'

    Un saludo

    miércoles, 9 de enero de 2019 12:12
  • Pero tienes que tener los ficheros con las imágenes de los iconos para poder utilizarlos. Puedes capturar la pantalla en la que se muestran y tratarla luego con una aplicación de dibujo para grabar cada imagen por separado.

    Saludos, Javier J

    • Propuesto como respuesta Pedro AlfaroModerator miércoles, 9 de enero de 2019 17:29
    • Votado como útil LG DES jueves, 10 de enero de 2019 8:05
    miércoles, 9 de enero de 2019 12:47
  • No quiero 'tener' los iconos en mi aplicación, quiero leerlos de windows, al igual que 'leo' los iconos de carpetas, discos fijos, unidades de red, etc. mediante:

    Private Structure SHFILEINFO
            Public hIcon As IntPtr
            Public iIcon As Integer
            Public dwAttributes As Integer
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szDisplayName As String
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> Public szTypeName As String
        End Structure
    
    Private Declare Auto Function SHGetFileInfo Lib "shell32.dll" _
                (ByVal pszPath As String,
                    ByVal dwFileAttributes As Integer,
                    ByRef psfi As SHFILEINFO,
                    ByVal cbFileInfo As Integer,
                    ByVal uFlags As Integer) As IntPtr
    
    Dim shInfo As SHFILEINFO = New SHFILEINFO()
                shInfo.szDisplayName = New String(Convert.ToChar(vbNullChar), MAX_PATH)
                shInfo.szTypeName = New String(Convert.ToChar(vbNullChar), 80)
    
    hIcon = SHGetFileInfo(fiFullName, 0, shInfo, Marshal.SizeOf(shInfo), nOpciones)
    
    MyIcon = Drawing.Icon.FromHandle(shInfo.hIcon).ToBitmap
    

    Ahora estoy buscando los iconos que he puesto en el mensaje inicial.

    Un saludo

    jueves, 10 de enero de 2019 8:11
  • Seguimos hablando de lo mismo: necesitas los archivos de esos iconos para poder utilizarlos en tu aplicación. Los iconos que utiliza Windows suelen estar en archivos .exe o .dll (shell32.dll, imageres.dll , ...)

    Hay utilidades que sirven para extraer ese tipo de archivos como IconsExtract:

    http://www.nirsoft.net/utils/iconsext.html

    También puedes buscar "Windows Icons" en Google.


    Saludos, Javier J

    • Marcado como respuesta Pedro AlfaroModerator miércoles, 16 de enero de 2019 22:55
    • Desmarcado como respuesta LG DES viernes, 18 de enero de 2019 8:19
    jueves, 10 de enero de 2019 8:49
  • Si, pero si lees bien mi pregunta inicial:

    Quiero obtener los iconos que se muestran en el explorador de Windows para meterlos en un ImageList:

    ¿ Como los puedo obtener mediante programación en .NET (vb.net o c#)?

    Un saludo

    jueves, 10 de enero de 2019 11:00