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 |