hey Rammi,
shell() ist so ne Sache und ein echtes Risiko.... aber ok.
der Aufruf ist wie folgt (siehe auch Hilfe):
Shell (Pathname As String[, Windowstyle As Integer][, Param As String][, bSync])
und shell() startet ein
Programm!!
Das was Du übergibst ist eine Datei - kein Programm. Auch wenn Dein Dateityp im System mit einem Programm verknüpft ist....
Hier mal ein Beispiel, wie Du eine PDF Datei per shell-Befehl anzeigen lassen kanst:
Code: Alles auswählen
sub shelltest
s = "C:\Users\Tom\Desktop\hallo.pdf"
p = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe"
shell(p,"", s)
end sub
So ähnlich wird das auch mit der *.sh Datei funktionieren.
Noch etwas: Shell() benötigt keine Msgbox - liefert ja auch nix zurück.
aber, der Basic-Shell Befehl sollte eh hinter dem UNO -Shell Service zurükstehen. Der ist stabiler und immer vorzuziehen. Da solltest Du auch die Datei direkt aufrufen können - wenn die Datei-erweiterung im System mit eien Programm verknüpft ist.
Also z.B. so:
Code: Alles auswählen
sub shelltest
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
s = "C:\Users\Tom\Desktop\hallo.pdf"
oShell.execute(s,,0)
end sub
VG Tom