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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Microsoft Visual C# .NET verzi tohoto článku naleznete 319350.
Souhrn
Tento podrobný článek popisuje způsob použití funkce SHGetFileInfo získat ikony, které jsou přidruženy soubory.

back to the top

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.
back to the top

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 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. 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 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

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.
back to the top
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
back to the top

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 319340 - Poslední kontrola: 12/07/2015 09:15:39 - Revize: 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 KbMtcs
Váš názor