Jak používat funkci SHGetFileInfo získat ikony, které jsou přidruženy soubory Visual C# .NET

Překlady článku Překlady článku
ID článku: 319350 - Produkty, které se vztahují k tomuto článku.
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 projektuVisual C# projekty 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 v souboru Form1.cs na konci příkazů USING.
    using System.Runtime.InteropServices;
    					
  2. Přidejte následující kód po Form1 třídy oboru názvů GetIconSample.
    [StructLayout(LayoutKind.Sequential)]
    public struct SHFILEINFO 
    {
    	public IntPtr hIcon;
    	public IntPtr iIcon;
    	public uint dwAttributes;
    	[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
    	public string szDisplayName;
    	[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
    	public string szTypeName;
    };
    
    class Win32
    {
    	public const uint SHGFI_ICON = 0x100;
    	public const uint SHGFI_LARGEICON = 0x0; // 'Large icon
    	public const uint SHGFI_SMALLICON = 0x1; // 'Small icon
    		
    	[DllImport("shell32.dll")]
    	public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
    }
    					
  3. Přidejte následující kód v třídě Form1 po PRIVATE výkazy:
    private int nIndex = 0;
    					
  4. 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.
  5. 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:
    IntPtr hImgSmall; //the handle to the system image list
    IntPtr hImgLarge; //the handle to the system image list
    string fName; //  'the file name to get icon from
    SHFILEINFO shinfo = new SHFILEINFO();
       
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.InitialDirectory = "c:\\temp\\";
    openFileDialog1.Filter = "All files (*.*)|*.*";
    openFileDialog1.FilterIndex = 2;
    openFileDialog1.RestoreDirectory = true ;
    
    listView1.SmallImageList = imageList1;
    listView1.LargeImageList = imageList1;
    			
    if(openFileDialog1.ShowDialog() == DialogResult.OK) 
    {
         fName = openFileDialog1.FileName;
         //Use this to get the small Icon
         hImgSmall = Win32.SHGetFileInfo(fName, 0, ref shinfo,(uint)Marshal.SizeOf(shinfo),Win32.SHGFI_ICON |Win32.SHGFI_SMALLICON);
    
        //Use this to get the large Icon
        //hImgLarge = SHGetFileInfo(fName, 0, 
        //	ref shinfo, (uint)Marshal.SizeOf(shinfo), 
        //	Win32.SHGFI_ICON | Win32.SHGFI_LARGEICON);
    
        //The icon is returned in the hIcon member of the shinfo struct
        System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
    				
        imageList1.Images.Add(myIcon);
    				
        //Add file name and icon to listview
        listView1.Items.Add(fName, nIndex++); 
    }
    					

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 Basic .NET verzi tohoto článku klepněte na následující číslo článku databáze Microsoft Knowledge Base:
319340Jak získat ikony, které jsou přidruženy soubory Visual Basic .NET pomocí funkce SHGetFileInfo

Vlastnosti

ID článku: 319350 - Poslední aktualizace: 22. září 2006 - Revize: 2.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • 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 KB319350 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:319350

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