Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo utilizar la función SHGetFileInfo para obtener los iconos que están asociados con archivos en Visual Basic.NET

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 319340
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 319350.
Resumen
En este artículo paso a paso describe cómo utilizar la función SHGetFileInfo para obtener los iconos asociados con los archivos.

back to the top

Crear una aplicación de Windows Forms

  1. Inicie Microsoft Visual Studio NET..
  2. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
  3. En el cuadro de diálogo Nuevo proyecto , haga clic en Proyectos de Visual Basic bajo Tipos de proyecto y, después, haga clic en Aplicación para Windows en plantillas .
  4. En el cuadro nombre , escriba GetIconSample .
back to the top

Utilice la función SHGetFileInfo

  1. Agregue el código siguiente al principio del archivo Form1.vb.
    Imports System.Runtime.InteropServices					
  2. Agregue el código siguiente en la clase Form1 después de la instrucción INHERITS .
    Private Structure SHFILEINFO        Public hIcon As IntPtr ' : icon        Public iIcon As Integer ' : icondex        Public dwAttributes As Integer ' : SFGAO_ flags        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _        Public szDisplayName As String        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _        Public szTypeName As StringEnd StructurePrivate Declare Ansi 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 IntPtrPrivate Const SHGFI_ICON = &H100Private Const SHGFI_SMALLICON = &H1Private Const SHGFI_LARGEICON = &H0         ' Large iconPrivate nIndex = 0					
  3. Agregue un control de lista , un control de botón y un control imageList al formulario. Los nombres predeterminados son ListView1, Button1 y ImageList1.
  4. En la ventana Propiedades de Button1 , establezca el texto del botón para Seleccionar un archivo y, a continuación, agregue el código siguiente en el evento Button1_Click :
    Dim hImgSmall As IntPtr  'The handle to the system image list.Dim hImgLarge As IntPtr  'The handle to the system image list.Dim fName As String      'The file name to get the icon from.Dim shinfo As SHFILEINFOshinfo = New SHFILEINFO()Dim openFileDialog1 As OpenFileDialogopenFileDialog1 = New OpenFileDialog()openFileDialog1.InitialDirectory = "c:\temp\"openFileDialog1.Filter = "All files (*.*)|*.*"openFileDialog1.FilterIndex = 2openFileDialog1.RestoreDirectory = TruelistView1.SmallImageList = imageList1listView1.LargeImageList = ImageList1shinfo.szDisplayName = New String(Chr(0), 260)shinfo.szTypeName = New String(Chr(0), 80)If (openFileDialog1.ShowDialog() = DialogResult.OK) Then     fName = openFileDialog1.FileName     'Use this to get the small icon.     hImgSmall = SHGetFileInfo(fName, 0, shinfo, Marshal.SizeOf(shinfo), _         SHGFI_ICON Or SHGFI_SMALLICON)     'Use this to get the large icon.     'hImgLarge = SHGetFileInfo(fName, 0,      'ref shinfo, (uint)Marshal.SizeOf(shinfo),      'SHGFI_ICON | SHGFI_LARGEICON);     'The icon is returned in the hIcon member of the shinfo struct.     Dim myIcon As System.Drawing.Icon     myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)     imageList1.Images.Add(myIcon) 'Add icon to imageList.     listView1.Items.Add(fName, nIndex) 'Add file name and icon to listview.     nIndex = nIndex + 1End If					
back to the top

Ejecutar el proyecto

  1. Compilar el proyecto: en el menú Generar , haga clic en Generar solución .
  2. Presione F5 para ejecutar el proyecto.
  3. Haga clic en Seleccionar un archivo y, a continuación, seleccione un archivo en el cuadro de diálogo Abrir . El nombre del archivo y el icono que está asociado con el archivo aparecerá en el control ListView .
back to the top
Referencias
Para obtener información adicional en una versión de Microsoft Visual C# .NET de este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
319350Cómo utilizar la función SHGetFileInfo obtener los iconos que están asociados con archivos en Visual C# .NET
back to the top

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 319340 - Última revisión: 12/07/2015 09:15:41 - Revisión: 2.0

Microsoft Visual Studio .NET 2002 Professional, Microsoft Visual Studio .NET 2002 Enterprise Architect, Microsoft Visual Studio .NET 2002 Enterprise Developer, Microsoft Visual Studio .NET 2002 Academic Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster KB319340 KbMtes
Comentarios