Imports System.Drawing Imports System.Runtime.InteropServices Imports Pilz.Win32.Mapped Imports Pilz.Win32.Native Namespace Internals Public Class IconExtractor ''' ''' Extrahiert das Icon aus einer Datei oder aus einem Ordner. ''' ''' Hier übergeben Sie den Pfad der Datei von dem das Icon extrahiert werden soll. ''' Bei übergabe von true wird ein kleines und bei false ein großes Icon zurück gegeben. Public Shared Function ExtractIcon(FilePath As String, size As SystemIconSize) As Icon Dim icon As Icon Dim shinfo As New SHFILEINFO Dim small As Boolean = size = SystemIconSize.Small Shell32.SHGetFileInfo(FilePath, 0, shinfo, Math.Truncate(Marshal.SizeOf(shinfo)), SHFILEINFO.SHGFI_ICON Or If(small, SHFILEINFO.SHGFI_SMALLICON, SHFILEINFO.SHGFI_LARGEICON)) Try icon = Icon.FromHandle(shinfo.hIcon) Catch ex As Exception icon = Nothing End Try Return icon End Function End Class End Namespace