VB-Homepage Tipp 151

Nutzung der systemeigenen Dateieigenschaftsanzeige

Einen wirklich interessanten Tipp gibt es hier zur Nutzung der systemeigenen Eigenschaftensanzeige.
Wenn Ihnen das noch nichts sagt, dann gehen Sie doch in den Explorer, markieren eine Datei, klicken mit der rechten Maustaste und wählen Eigenschaften. Die sich daraufhin öffnende Eigenschaftanzeige ist genau die, die wir direkt aus VB heraus aufrufen wollen und das ist doch für bestimmte Projekte eine feine Sache, muß man sich nichts eigenes mehr einfallen lassen.

Man nehme

1. Ein neues Projekt mit einer Form

2. Einen CommandButton zum Aktion auslösen

3. Hier zum Testen noch eine Textbox, in der wir später die Datei eintragen, von der wir die Eigenschaften sehen wollen

4. Mischen Sie alles schön durch, damit es auf Ihrer Form geordnet zu geht
und fügen Sie nun einige kleine feine API-Anweisungen unter Allgemein/Deklarationen hinzu

Private 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

Const SEE_MASK_INVOKEIDLIST = &HC
Const SEE_MASK_NOCLOSEPROCESS = &H40
Const SEE_MASK_FLAG_NO_UI = &H400

Private Declare Function ShellExecuteEX Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long

5. Erstellen Sie nun einen eigenen Abschnitt unter Allgemein/ShowProperties
wird durch das Einfügen des Codes automatisch angelegt.
Public Function ShowProperties(filename As String, OwnerhWnd As Long) As Long
Dim SEI As SHELLEXECUTEINFO
Dim r As Long

With SEI
   .cbSize = Len(SEI)
   .fMask = SEE_MASK_NOCLOSEPROCESS Or SEE_MASK_INVOKEIDLIST Or    SEE_MASK_FLAG_NO_UI
   .hwnd = OwnerhWnd
   .lpVerb = "properties"
   .lpFile = filename
   .lpParameters = vbNullChar
   .lpDirectory = vbNullChar
   .nShow = 0
   .hInstApp = 0
   .lpIDList = 0
End With

r = ShellExecuteEX(SEI)
ShowProperties = SEI.hInstApp

End Function

6. Nun haben wir alle notwendigen Inkredenzien beisammen und können an das Servieren denken. Dazu geben Sie folgendes unter Command1/Click hinzu.
Dim r As Long
Dim fname As String

fname = Trim(Text1)
r = ShowProperties(fname, Me.hwnd)
'Fehler aufgetreten
If r <= 32 Then MsgBox "Fehler"

7. Starten Sie nun Ihr Projekt mit F5, geben Sie in die Textbox Notepad ein und
(Notepad liegt im Pfad, deshalb sollte das auf jeden Fall klappen) klicken auf den Button. Wenn sich daraufhin nicht das Eigenschaftsmenü für die notepad.exe öffnet, dann kann das an allem möglichen liegen, aber nicht an dem Quellcode.

8. Guten Appetit


Tipp-Download

Quelle :

Zurück zur Übersichtsseite