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 26.711 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
Neu! sevCommand 4.0 Professionelle Schaltflächen im modernen Design! Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.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. |