Wie Sie die SHGetFileInfo-Funktion verwenden, um die Symbole abzurufen, die Dateien in Visual Basic .NET zugeordnet sind

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 319340 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Eine Microsoft Visual C# .NET-Version dieses Artikels finden Sie unter 319350.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

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

Erstellen Sie eine Windows Forms-Anwendung

  1. Visual Studio von Microsoft .NET zu starten.
  2. Klicken Sie im Menü Datei auf neuzeigen Sie und klicken Sie dann auf Projekt.
  3. Klicken Sie im Dialogfeld Neues Projekt klicken Sie auf Visual Basic Projekte unter Projekttypen, und klicken Sie dann unter Vorlagenauf Windows-Anwendung .
  4. Geben Sie im Feld NameGetIconSample.

Verwenden Sie die SHGetFileInfo-Funktion

  1. Fügen Sie den folgenden Code am Anfang der Datei Form1.vb.
    Imports System.Runtime.InteropServices
    					
  2. Fügen Sie den folgenden Code in der Klasse Form1 nach der INHERITS -Anweisung.
    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. Fügen Sie ein ListView -Steuerelement, ein Button -Steuerelement und ein ImageList -Steuerelement zum Formular hinzu. Die Standardnamen sind ListView1 Button1 und ImageList1.
  4. Im Fenster Eigenschaften von Button1auf den Text der Schaltfläche festgelegt Wählen Sie eine Datei, und fügen Sie folgenden Code im Button1_click -Ereignis:
    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
    					

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 im Dialogfeld Öffnen eine Datei. Der Namen der Datei und das Symbol, das mit der Datei verknüpft ist, werden im ListView -Steuerelement angezeigt.

Informationsquellen

Weitere Informationen in einer Microsoft Visual C# .NET Version dieses Artikels klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
319350 Wie Sie die SHGetFileInfo-Funktion verwenden, um die Symbole abzurufen, die Dateien in Visual C# .NET zugeordnet sind

Eigenschaften

Artikel-ID: 319340 - Geändert am: Sonntag, 30. September 2012 - Version: 4.0
Die Informationen in diesem Artikel beziehen sich auf:
  • 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 KB319340 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 319340
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.

Ihr Feedback an uns

 

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