VB-Homepage Tipp 080

Starten von Dateien zugeordneten Programmen

Ich denke mal, vielen geht es ähnlich wie es mir bisher ergangen ist.
Wenn ich eine Datei öffnen wollte, zum Beispiel eine einfache Textdatei mit dem Editor, dann habe ich den Shellbefehl verwendet.
x = Shell("Notepad C:\Appfad\meine.txt", 1)

Und da mußte ich hier noch nicht mal den Pfad des Programms angeben, da es ja in einem Suchpfad lag.
Bei *.doc oder anderen Dateien hätte man noch wissen müssen, wo die Anwendung liegt. Wie schön wäre es doch, wenn man es wie im Dateimanager oder Explorer über die Dateiverknüpfungen lösen könnte.

KANN MAN UND KÖNNEN SIE NUN AUCH
Kreieren Sie ein neues VB - Projekt, daß Sie für unseren Test lediglich mit einem Controllbutton versehen.

16Bit
General/Declarations
Declare Function ShellExecute Lib "shell.dll" (ByVal hWnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
Const SW_SHOWNORMAL = 1

General/AppStart 'wird durch die Eingabe erzeugt
Function AppStart (DocPath As String, DocName As String)
On Error GoTo Err_StartApp
AppStart = ShellExecute(screen.ActiveForm.hWnd, "Open", DocName, "", DocPath, SW_SHOWNORMAL)
If StartApp = 31 Then MsgBox "Mit dieser Datei ist keine Anwendung verknüpft.", 64
Exit Function

Err_StartApp:
MsgBox "Error: " & Err & " " & Error
Exit Function

End Function

Command1/Click
x = AppStart("C:\Windows", "win.ini") 'Variable 1 = Pfad ; Variable 2 = die zu startende Datei

32Bit
Allgemein/Deklarationen

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1

Allgemein/StartApp 'wird durch die Eingabe erzeugt
Function StartApp(DocPath As String, DocName As String)
On Error GoTo Err_StartApp
StartApp = ShellExecute(Screen.ActiveForm.Hwnd, "Open", DocName, "", DocPath, SW_SHOWNORMAL)
If StartApp = 31 Then MsgBox "Mit dieser Datei ist keine Anwendung verknüpft.", 64
Exit Function

Err_StartApp:
MsgBox "Error: " & Err & " " & Error
Exit Function

End Function

Command1/Click
x = StartApp("C:\Windows", "win.ini")

Hier wurde als Beispiel etwas gewählt, was wohl bei den meisten auf Anhieb klappen sollte. Genau so gut, hätten Sie auch jede andere Datei (*.doc;*.xls;*.ppt o.ä.) wählen können.
Voraussetzung ist lediglich, das die entsprechende Anwendung verfügbar und richtig im System verknüpft ist.
Ich finde ein recht brauchbarer Tipp.


Tipp-Download

Quelle : Michael Rackow (Michael.Rackow@t-online.de)

Zurück zur Übersichtsseite