DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 319350 - Geändert am: Donnerstag, 31. Oktober 2013 - Version: 3.0

 

Auf dieser Seite

Zusammenfassung

Dieser schrittweise aufgebaute Artikel beschreibt, wie die SHGetFileInfo -Funktion verwenden, um die Symbole zu erhalten, die mit Dateien verknüpft sind.

Erstellen Sie eine Windows Forms-Anwendung

  1. Starten Sie Microsoft Visual Studio .NET.
  2. Klicken Sie im Menü Datei auf neuund klicken Sie dann auf Projekt.
  3. Klicken Sie unter Projekttypenauf Visual C#-Projekte im Dialogfeld Neues Projekt , und klicken Sie unter Vorlagenauf Windows-Anwendung .
  4. Geben Sie im Feld NameGetIconSample.

Verwenden Sie die SHGetFileInfo-Funktion

  1. Fügen Sie den folgenden Code in der Datei "Form1.cs" am Ende des USING -Anweisungen hinzu.
    using System.Runtime.InteropServices;
    					
  2. Fügen Sie den folgenden Code nach der Form1 -Klasse des GetIconSample -Namespace.
    [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. Fügen Sie den folgenden Code nach der Anweisung PRIVATE in der Klasse Form1 :
    private int nIndex = 0;
    					
  4. Fügen Sie ein ListView -Steuerelement, ein Button -Steuerelement und ein ImageList -Steuerelement zum Formular hinzu. Die Standardnamen sind listView1 button1 und imageList1.
  5. Legen Sie den Text der Schaltfläche, Wählen Sie eine Dateiim Fenster Eigenschaften von button1, und fügen Sie den folgenden Code im button1_click -Ereignis:
    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++); 
    }
    					

Führen Sie das Projekt

  1. Kompilieren Sie das Projekt: Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
  2. Drücken Sie F5, um das Projekt auszuführen.
  3. Klicken Sie auf Wählen Sie eine Datei, und wählen Sie dann eine Datei im Dialogfeld Öffnen . Der Namen der Datei und das Symbol, das der Datei zugeordnet ist, werden im ListView -Steuerelement angezeigt.

Informationsquellen

Klicken Sie für Weitere Informationen in einer Microsoft Visual Basic .NET Version dieses Artikels auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
319340  (http://support.microsoft.com/kb/319340/ ) Wie Sie die SHGetFileInfo-Funktion verwenden, um die Symbole zu erhalten, die Dateien in Visual Basic .NET zugeordnet sind

Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbhowtomaster kbmt KB319350 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 319350  (http://support.microsoft.com/kb/319350/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store