Mit der API ExtractIcon kann man ein bestimmtes Icon mit Index aus einer DLL laden und als Icondatei zurückgeben
Private Declare Auto Function ExtractIcon Lib "shell32.dll" ( _
ByVal hIcon As IntPtr, _
ByVal lpszExeFileName As String, _
ByVal nIconIndex As Integer) _
As IntPtr
''' <summary>
''' Diese Funktion lädt ein bestimmtes Icon z.B. aus einer DLL mit mehreren Icons
''' wie z.B. die shell32.dll die einige System-Icons enthält
''' </summary>
''' <param name="File">Die Datei aus der ein Icon ausgelesen werden soll</param>
''' <param name="Index">Der Index des auszulesenden Icons</param>
Public Function GetIconFromFile(ByVal File As String, ByVal Index As Integer) As Icon
Try
Dim IconHandle As IntPtr = ExtractIcon(IntPtr.Zero, File, Index)
Return Icon.FromHandle(IconHandle)
Catch ex As Exception
Return Nothing
End Try
End Function
Kommentare zum Snippet