Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Icon aus Exe oder Lnk in einem Userform

Icon aus Exe oder Lnk in einem Userform
12.06.2017 12:53:41
Sebastian
Hallo Leute,
Ich möchte gerne per „Durchsuchen“ den Pfad einer Anwendung in einem Userform Textbox darstellen. Das bekomme ich auch hin. Nur würde mich interessieren ob ich auch das Icon in einem Picture darstellen und in einer Zelle speichern kann.
Holen tue ich mir den Link mit

Private Sub CommandButton1_Click()
fileToOpen = Application.GetOpenFilename("Mögliche Dateien (*.exe;*.bat;*.lnk), *.lnk;*.exe;*.   _
_
_
bat ")
TextBox2 = fileToOpen
End Sub

Bekomm ich nun in ein Userform Image auch das Icon zur exe oder dem Link? Geht sowas?
Vielen Dank und viele Grüße
Sebastian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 14:51:13
Nepumuk
Hallo Sebastian,
ein Beispiel:
Option Explicit

Private Declare Function OleCreatePictureIndirect Lib "oleaut32.dll" ( _
    ByRef pDicDesc As IconType, _
    ByRef riid As CLSIdType, _
    ByVal fown As Long, _
    ByRef lpUnk As Object) As Long
Private Declare Function SHGetFileInfoA Lib "shell32.dll" ( _
    ByVal pszPath As String, _
    ByVal dwFileAttributes As Long, _
    ByRef psfi As ShellFileInfoType, _
    ByVal cbFileInfo As Long, _
    ByVal uFlags As Long) As Long

Private Const ICON_BIG As Long = &H100&
Private Const ICON_SMALL As Long = &H101&
Private Const MAX_PATH As Long = 260&
Private Const vbPicTypeIcon As Long = 3&

Private Type IconType
    cbSize As Long
    picType As Long
    hIcon As Long
End Type

Private Type CLSIdType
    id(16) As Byte
End Type

Private Type ShellFileInfoType
    hIcon As Long
    iIcon As Long
    dwAttributes As Long
    szDisplayName As String * MAX_PATH
    szTypeName As String * 80
End Type

Private Sub CommandButton1_Click()
    Dim vntReturn As Variant
    vntReturn = Application.GetOpenFilename("Mögliche Dateien (*.exe;*.bat;*.lnk), *.lnk;*.exe;*.bat")
    If vntReturn <> False Then Set Image1.Picture = LoadIcon(CStr(vntReturn))
End Sub

Private Function LoadIcon(ByVal pvstrFile As String) As IPictureDisp
    Dim objUnknown As IUnknown
    Dim udtIcon As IconType
    Dim udtCLSID As CLSIdType
    Dim udtShellInfo As ShellFileInfoType
    Call SHGetFileInfoA(pvstrFile, 0, udtShellInfo, Len(udtShellInfo), ICON_BIG)
    udtIcon.cbSize = Len(udtIcon)
    udtIcon.picType = vbPicTypeIcon
    udtIcon.hIcon = udtShellInfo.hIcon
    udtCLSID.id(8) = &HC0
    udtCLSID.id(15) = &H46
    Call OleCreatePictureIndirect(udtIcon, udtCLSID, 1, objUnknown)
    Set LoadIcon = objUnknown
    Set objUnknown = Nothing
End Function

Gruß
Nepumuk
Anzeige
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 15:39:50
Fennek
Hallo Nepumuk,
unter xl2016 gibt es eine Fehlermeldung zumindest bei:

Dim udtIcon As IconType
Dim udtCLSID As CLSIdType
Anstelle von "IconType" ist nur "Icon" verfügbar. Auch ist keine "CLSID" verfügbar.
Müssen Verweise gesetzt werden?
mfg
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 15:44:16
Sebastian
Also bei mir mit Excel 2007 geht das, vielen Dank :-)
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 15:51:15
Mullit
Hallo,
da wirst Du nur die Hälfte kopiert haben, das sind benutzerdefinierte Datentypen, die Deklar. stehen im Kopf:

Private Type IconType
cbSize As Long
picType As Long
hIcon As Long
End Type
Private Type CLSIdType
id(16) As Byte
End Type

Gruß, Mullit
Anzeige
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 15:52:02
Nepumuk
Hallo Fennek,
ich hab das jetzt in 2016 getestet, funktioniert einwandfrei.
Der gesamte Code muss in das Modul des Userforms.
Gruß
Nepumuk
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 16:21:37
Fennek
Danke,
ich hatte es zuerst in ein allgemeines Modul kopiert und dann nur teilweise in die userform.
mfg
AW: Icon aus Exe oder Lnk in einem Userform
12.06.2017 16:24:42
Sebastian
Wie gesagt... Vielen Dank dafür..
Einfach großartig

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige