Für Aufrufe mit Shell benötigt man leider immer komplette Pfadangaben. In dem Fall finde ich es schöner, sich die ShellExecute aus der Shell32.dll zu holen, dann klappen Shell-Aufrufe, wie gewohnt. Du kannst dann z.B. auch beliebige Dokumente aufrufen, ohne den Pfad zum verknüpften Programm kennen zu müssen. "Shell" ist in LS einfach nur schlecht implementiert...
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
Const SW_HIDE = 0 ' Versteckt öffnen
Const SW_MAXIMIZE = 3 ' Maximiert öffnen
Const SW_MINIMIZE = 6 ' Minimiert öffnen
Const SW_NORMAL = 1
Const SW_RESTORE = 9
Const SW_SHOWMAXIMIZED = 3
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMINNOACTIVE = 7
Const SW_SHOWNOACTIVATE = 4
Sub Click(Source As Button)
'Ping:
Call ShellExecute(0, "open", "ping", "192.168.1.1 -t", "", SW_NORMAL)
'Word-Datei öffnen:
Call ShellExecute(0, "open", "C:\MeinPfad\Mein.Doc", "", "", SW_NORMAL)
' Excel-Datei im Hintergrund drucken:
Call ShellExecute(0, "print", "C:\MeinPfad\Mein.XLS", "", "", SW_HIDE)
' Explorer-Fenster mit einem vorgegebenen Pfad öffnen:
Call ShellExecute(0, "explore", "", "C:\MeinPfad\", "", SW_NORMAL)
' Anwendung in einem bestimmten Verzeichnis ausführen, Fenster maximieren:
Call ShellExecute(0, "Print", "C:\MeinPfad\Mein.XLS", "C:\MeinAndererPfad", "", SW_MAXIMIZE)
End Sub