Jak získat ikony, které jsou přidruženy soubory Visual Basic .NET pomocí funkce SHGetFileInfo

Překlady článku Překlady článku
ID článku: 319340 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual C# .NET verzi tohoto článku naleznete 319350.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento podrobný článek popisuje způsob použití funkce SHGetFileInfo získat ikony, které jsou přidruženy soubory.

Vytvoření aplikace model Windows Forms

  1. Spusťte aplikaci Visual Studio .NET.
  2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
  3. V dialogovém okně Nový projekt klepněte v části Typy ProjectProjekty jazyka a klepněte v části šablonyAplikace Windows.
  4. V poli název zadejte GetIconSample.

Použijte funkci SHGetFileInfo

  1. Přidejte následující kód na začátku souboru Form1.vb.
    Imports System.Runtime.InteropServices
    					
  2. Přidejte následující kód v třídě Form1 po příkazu 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 String
    End Structure
    
    Private 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 IntPtr
    
    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_SMALLICON = &H1
    Private Const SHGFI_LARGEICON = &H0         ' Large icon
    Private nIndex = 0
    					
  3. Do formuláře přidat ovládací prvek seznam, ovládací tlačítka a ovládací prvek imageList. Výchozí názvy jsou ListView1, Button1 a ImageList1.
  4. V okně Vlastnosti Button1 nastavit text tlačítka Výběr souboru a přidejte následující kód v události 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 SHFILEINFO
    shinfo = New SHFILEINFO()
    Dim openFileDialog1 As OpenFileDialog
    openFileDialog1 = New OpenFileDialog()
    
    openFileDialog1.InitialDirectory = "c:\temp\"
    openFileDialog1.Filter = "All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True
    
    listView1.SmallImageList = imageList1
    listView1.LargeImageList = ImageList1
    
    shinfo.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 + 1
    End If
    					

Spustit projektu

  1. Kompilovat projektu: v nabídce vytvořit klepněte na tlačítko Sestavit řešení.
  2. Stisknutím klávesy F5 spustit projektu.
  3. Klepněte na tlačítko Vybrat soubor a vyberte soubor v dialogovém okně Otevřít. Název souboru a ikonu je přidružen k souboru zobrazí v ovládacím prvku ListView.

Odkazy

Další informace v Microsoft Visual C# .NET verzi tohoto článku klepněte na článek číslo článku databáze Microsoft Knowledge Base:
319350Použití funkce SHGetFileInfo Komu, kopie ikony, které se přidružené soubory Visual C# .NET

Vlastnosti

ID článku: 319340 - Poslední aktualizace: 6. července 2004 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbhowtomaster KB319340 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:319340

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com