Como usar a função SHGetFileInfo para obter os ícones que estão associados a arquivos no Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 319340
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 319350.
Sumário
Este artigo passo a passo descreve como usar a função SHGetFileInfo para obter os ícones que são associados a arquivos.

back to the top

Criar um aplicativo Windows Forms

  1. Inicie o Microsoft Visual Studio NET..
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Na caixa de diálogo New Project , clique em Projetos do Visual Basic em Project Types e clique em Windows Application em modelos .
  4. Na caixa nome , digite GetIconSample .
back to the top

Use a função SHGetFileInfo

  1. Adicione o seguinte código no início do arquivo Form1.vb.
    Imports System.Runtime.InteropServices					
  2. Adicione o seguinte código na classe Form1 após a instrução 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. Adicione um controle listView , um controle de botão e um controle imageList ao formulário. Os nomes padrão são ListView1, Button1 e ImageList1 respectivamente.
  4. Na janela Propriedades de Button1 , defina o texto do botão para Selecionar um arquivo e, em seguida, adicione o seguinte código no 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

Executar o projeto

  1. Compilar o projeto: no menu Build , clique em Build Solution .
  2. Pressione F5 para executar o projeto.
  3. Clique em Selecionar um arquivo e selecione um arquivo na caixa de diálogo Abrir . O nome do arquivo e o ícone associado ao arquivo exibido no controle ListView .
back to the top
Referências
Para obter informações adicionais em uma versão Microsoft Visual translation from VPE for Csharp .NET deste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
319350Como usar a função SHGetFileInfo para obter os ícones que estão associados com arquivos no Visual translation from VPE for Csharp .NET
back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 319340 - Última Revisão: 12/07/2015 09:15:45 - Revisão: 2.0

Microsoft Visual Studio .NET 2002 Professional Edition, 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 KbMtpt
Comentários