Befehl shell Fehlermeldung

Private Sub CommandButton3_Click()

Shell „C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader“
Shell „D:\Lösungsweg 2 3 4 5 3S.pdf“, vbNormalFocus
Me.Hide
End Sub

Bei diesem Programm soll eigentlich nur die pdf datei geöffnet werden. Der 1. Shell-Befehl funktioniert. Bei dem 2. Befehl kommt die Fehlermeldung
„Ungültiger Prozeduraufruf oder ungültiges Argument“

Wenn ich beide Befehle zusammlege
Shell „C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader D:\Lösungsweg 2 3 4 5 3S.pdf“
dann kommt die Fehlermeldung
„Could not open file. File not found“

Hallo!

Bei diesem Programm soll eigentlich nur die pdf datei geöffnet
werden.

Um zu schauen, ob die Befehle das tun was sie sollen, kannst du sie zuerst ja im Kommandozeilenfenster ausprobieren.

Shell „C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader D:\Lösungsweg 2 3 4 5 3S.pdf“

Hier gibt es wahrscheinlich ein Problem mit den Leerzeichen im String. Die Kommandozeile zerlegt den hinteren Teil an den Leerzeichen und übergibt sie dem aufgerufenen Programm als einzelne Parameter. Und eine Datei namens „D:\Lösungsweg“ findet der Reader dann nicht.
Du wirst also den Dateinamen in Anführungszeichen einpacken müssen.

mfg
christoph

Kannst du mir den Befehl mal bitte genauer aufschreiben?

Ich habe jetzt die Datei umbenannt in „Lösungsweg“
Der Befehl:
Shell („C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader D:\Lösungsweg.pdf“)
funktioniert jetzt.

Mein nächstes Problem ist das die Datei eigentlich an einem anderen Speicherplatz ist.
Shell („C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader D:\03 Bay\1 ddopa\Zwür\PDF\Lösungsweg.pdf“)

Die Namen der Ordner auf dem Pfad möchte ich nicht ändern! Bei diesem Befehl wird der Reader geöffnet aber die Datei nicht! Eine Fehlermeldung kommt auch NICHT.
Wo muß ich die „Gänsefüßchen“ eingeben?

Shell („C:\Program Files\Foxit Software\Foxit Reader\Foxit
Reader D:\Lösungsweg.pdf“)
funktioniert jetzt.
Mein nächstes Problem ist das die Datei eigentlich an einem
anderen Speicherplatz ist.
Shell („C:\Program Files\Foxit Software\Foxit Reader\Foxit
Reader D:\03 Bay\1 ddopa\Zwür\PDF\Lösungsweg.pdf“)

Die Namen der Ordner auf dem Pfad möchte ich nicht ändern! Bei
diesem Befehl wird der Reader geöffnet aber die Datei nicht!
Eine Fehlermeldung kommt auch NICHT.
Wo muß ich die „Gänsefüßchen“ eingeben?

Hallo m.p.

alternative Idee, nimm einen normalen Texteditor und erzeuge eine .bat-Datei mit einer Zeile:

Subst K: D:\03 Bay\1 ddopa\Zwür\PDF
oder (austesten)
Subst K: „D:\03 Bay\1 ddopa\Zwür\PDF“

Stelle .bat in den Autostartordner von Windows und starte Win neu.

Nun müßte/könnte :smile: dieses funktionieren:

Shell („C:\Program Files\Foxit Software\Foxit Reader\FoxitReader K:\Lösungsweg.pdf“)

Gruß
Reinhard

Hallo,

zusaetzliche einfache Anfuehrungszeichen um den Dateinamen sollten das Problem beheben.

Tschau
Peter

Hallo!

Mein nächstes Problem ist das die Datei eigentlich an einem
anderen Speicherplatz ist.

Shell („C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader D:\03 Bay\1 ddopa\Zwür\PDF\Lösungsweg.pdf“)

Du musst nur noch einfache Anführungszeichen einfügen. Da diese aber von VB nicht interpretiert werden sollen, machst du zwei hintereinander.

Shell ("C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader ""D:\03 Bay\1 ddopa\Zwür\PDF\Lösungsweg.pdf""")

mfg
christoph

1 Like

Super, so funktioniert das.

Danke