Eine häufig gestellte Frage ist: Wie ermittle ich das Icon (Symbol) einer bestimmten Anwendung oder DLL-Datei und wie bekomme ich das Icon dann in ein ImageList-Steuerelement? ' zunächst die benötigten API-Deklarationen Private Type TPictDesc cbSizeofStruct As Long PicType As Long hImage As Long xExt As Long yExt As Long End Type Private Type TGUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" _ Alias "ExtractAssociatedIconA" ( _ ByVal hInst As Long, _ ByVal lpIconPath As String, _ lpiIcon As Long) As Long Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" ( _ ByRef lpPictDesc As TPictDesc, _ ByRef RIID As TGUID, _ ByVal fPictureOwnsHandle As Long, _ ByRef IPic As IPicture) As Long 1. Anwendungssymbol ermitteln Private Function exeGetIcon(ByVal sFile As String, _ ByVal Index As Long) As Picture ' Icon aus .EXE/.DLL - Datei laden Dim Pic As Picture Dim PicDes As TPictDesc Dim IID_IDispatch As TGUID Dim Handle As Long Handle = ExtractAssociatedIcon(App.hInstance, _ sFile, Index) If Handle = 0 Then Exit Function PicDes.cbSizeofStruct = Len(PicDes) PicDes.PicType = vbPicTypeIcon PicDes.hImage = Handle IID_IDispatch.Data1 = &H20400 IID_IDispatch.Data4(0) = &HC0 IID_IDispatch.Data4(7) = &H46 Call OleCreatePictureIndirect(PicDes, _ IID_IDispatch, True, Pic) Set exeGetIcon = Pic End Function 2. Symbol einer ImageList hinzufügen Private Sub AddIconToImageList(imgList As ImageList, _ sFile As String, iIndex As Integer) ' Anwendungs-Icon einer ImageList hinzufügen Dim Index As Integer Dim imgX As ListImage With imgList.ListImages Index = .Count + 1 Set imgX = .Add(Index, , exeGetIcon(sFile, _ iIndex)) End With End Sub Beispielsaufruf: AddIconToImageList ImageList1, _ "c:\windows\system\explorer.exe", 0 Dieser Tipp wurde bereits 27.872 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Tipp des Monats TOP Entwickler-Paket ![]() TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR... |
||||||||||||||||
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. |