vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · Bilder und Icons   |   VB-Versionen: VB.NET18.12.03
Icons der Standardverknüpfung

Zeigt wie man unter VB.NET die Icons der Standardverknüpfung von Dateien ausliest.

Autor:   Jan BiniokBewertung:  Views:  17.549 
www.merx.tkSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Heute zeigen wir Ihnen, wie sich unter VB.NET die Icons der Standardverknüpfung von Dateien auslesen lassen.
Fügen Sie hierzu nachfolgenden Code in ein Klassenmodul ein:

#Region "Imports"
Imports System.Runtime.InteropServices
#End Region
 
Class clsFileIcon
 
#Region "Variablendeklaration"
  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 Auto 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         ' Großes Symbol
  Private nIndex = 0
#End Region
 
 
  Shared Function GetDefaultIcon(ByVal arg As String) As System.Drawing.Icon
    Dim hImgSmall As IntPtr  ' Handle zur System-Image-List
    Dim shinfo As SHFILEINFO
 
    Try
      shinfo = New SHFILEINFO
      shinfo.szDisplayName = New String(Chr(0), 260)
      shinfo.szTypeName = New String(Chr(0), 80)
      hImgSmall = SHGetFileInfo(arg, 0, shinfo, Marshal.SizeOf(shinfo), _
        SHGFI_ICON Or SHGFI_SMALLICON)
      GetDefaultIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
 
    Catch ex As Exception
      shinfo.szDisplayName = New String(Chr(0), 260)
    End Try
  End Function
End Class

Aufrufbeispiel:

' Standard-Icon der Datei zur Images-Auflistung 
' einer ImageList hinzufügen
ImageList1.Images.Add(GetDefaultIcon(Pfad & Filename))



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.