Tipp 3.5 - Eigenschaftsdialog

Wie kann ich den Eigenschaftsdialog einer Datei / eines Ordners aufrufen?

Mit dieser Funktion können Sie den Eigenschaftsdialog einer Datei / eines Ordners aufrufen. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Api-AufrufeVerwendete Win32-Api-Aufrufe und Typen: GetDesktopWindow, ShellExecuteEx - SHELLEXECUTEINFO

Beispiel:

Option Explicit
 
Public Type SHELLEXECUTEINFO
  cbSize                     As Long
  fMask                      As Long
  hwnd                       As Long
  lpVerb                     As String
  lpFile                     As String
  lpParameters               As String
  lpDirectory                As String
  nShow                      As Long
  hInstApp                   As Long
  lpIDList                   As Long
  lpClass                    As String
  hkeyClass                  As Long
  dwHotKey                   As Long
  hIcon                      As Long
  hProcess                   As Long
End Type
 
Public Declare Function GetDesktopWindow _
    Lib "user32" () As Long
Public Declare Function ShellExecuteEx _
    Lib "shell32.dll" _
    (ShellExExInfo As SHELLEXECUTEINFO) As Long
 
Public Function PropertyDialog(sPath As String) As Long
  '// -----------------------------------------------------
  '// Methode:   | Ruft den Eigenschaftsdialog einer Datei
  '//            | oder eines Ordners auf
  '// -----------------------------------------------------
  '// Parameter: | sPath = gütliger Datei- oder Ordnerpfad
  '// -----------------------------------------------------
  '// Rückgabe:  | Long-Wert der API-Funktionsrückgabe
  '// -----------------------------------------------------
  '// Autor:     | Stefan Kulpa
  '//            | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
  Const SEE_MASK_INVOKEIDLIST     As Long = &HC
  Const SEE_MASK_NOCLOSEPROCESS   As Long = &H40
  Const SEE_MASK_FLAG_NO_UI       As Long = &H400
  Dim uShExInf                    As SHELLEXECUTEINFO
 
  With uShExInf
    .cbSize = Len(uShExInf)
    .fMask = SEE_MASK_NOCLOSEPROCESS Or _
        SEE_MASK_INVOKEIDLIST Or _
        SEE_MASK_FLAG_NO_UI
    .hwnd = GetDesktopWindow()
    .lpVerb = "properties"
    .lpFile = sPath
    .lpParameters = vbNullChar
    .lpDirectory = vbNullChar
    .nShow = 0
    .hInstApp = 0
    .lpIDList = 0
  End With
  PropertyDialog = ShellExecuteEx(uShExInf)
 
End Function