Visual Basic Script Programm mit Parameter öffnen
Hallo Leute,
ich bin dabei ein Script zu schreiben, mit dem ich mehrere Programme öffne. Das klappt auch soweit ganz gut, bis auf die Programme die mit Parametern aufgerufen werden müssen.
Ein Paar Vorab infos:
OS: Vista
Script Sprache: VBScript
Mein ansatz zum öffnene des Programms:
Das Programm öffnet sich zwar doch leider ohne die parameter zu beachten.
Wie bekomme ich mein vorhaben hin?
Danke im vorraus für eure Hilfe!
Gruß
0cool
ich bin dabei ein Script zu schreiben, mit dem ich mehrere Programme öffne. Das klappt auch soweit ganz gut, bis auf die Programme die mit Parametern aufgerufen werden müssen.
Ein Paar Vorab infos:
OS: Vista
Script Sprache: VBScript
Mein ansatz zum öffnene des Programms:
set wshShell = CreateObject("WScript.Shell")
set objwshShell = WScript.CreateObject("WScript.Shell")
paraC = "-para1 name -para2 -para3"
path = objwshShell.Environment("Process")("ProgramFiles")
wshShell.Run ("""" & path & "\Firma\ProgramName\Version\Client\programm.exe" & """" & " " & paraC),0
Das Programm öffnet sich zwar doch leider ohne die parameter zu beachten.
Wie bekomme ich mein vorhaben hin?
Danke im vorraus für eure Hilfe!
Gruß
0cool
Please also mark the comments that contributed to the solution of the article
Content-ID: 168121
Url: https://administrator.de/contentid/168121
Printed on: October 9, 2024 at 22:10 o'clock
19 Comments
Latest comment
Moin moin
Wenn ich raten müste wüde ich sagen du hast dich mit den Hochkommas verhaspelt.
Warum baust du den String den du ausführen möchtest nicht erstmal sauber zusammen?
Etwa so:
Und was soll das mit ,0 hinter der Klammer (Zeile 7)?
Entweder du klammerst alle Parameter ein oder keine.
Gruß L.
Wenn ich raten müste wüde ich sagen du hast dich mit den Hochkommas verhaspelt.
Warum baust du den String den du ausführen möchtest nicht erstmal sauber zusammen?
Etwa so:
....
runCommand = path & "\Firma\ProgramName\Version\Client\programm.exe " & paraC
wshShell.Run runCommand
Und was soll das mit ,0 hinter der Klammer (Zeile 7)?
Entweder du klammerst alle Parameter ein oder keine.
Gruß L.
moin
Entweder:
oder aber
Wäre kein Leerzeichen im Pfad könnte man das Hochkomma gescheuder auch weglassen.
Ich kenne keinen.
Solte funktionieren.
Gegebenenfalls müssen deine paraC auch noch mal in Hochkommas gesetzt werden.
Etwa So.
Gruß L.
Zitat von @Friemler:
die Parameter müssen zusammen mit dem Programmpfad in Anführungszeichen eingeschlossen werden.
Sorry. Das ist jetzt Blödsinn.die Parameter müssen zusammen mit dem Programmpfad in Anführungszeichen eingeschlossen werden.
Entweder:
"C:\Program Files\Firma\ProgramName\Version\Client\programm.exe" -para1 name -para2 -para3
"C:\Program Files\Firma\ProgramName\Version\Client\programm.exe" "-para1 name -para2 -para3"
Ich kenne keinen.
.....
runCommand = """" & path & "\Firma\ProgramName\Version\Client\programm.exe" & """" & " " & paraC
wshShell.Run runCommand
Gegebenenfalls müssen deine paraC auch noch mal in Hochkommas gesetzt werden.
Etwa So.
.....
runCommand = """" & path & "\Firma\ProgramName\Version\Client\programm.exe" & """" & " " & """" & paraC & """"
wshShell.Run runCommand
Gruß L.
Moin
Nicht ohne das exakte Programm und die genauen Parameter zu kennen.
Gruß L.
Zitat von @0cool:
Das Programm startet jetzt mit deiner Variante 2, doch leider werden die Parameter ignoriert.
Hast du noch ne Idee wie ich an mein Ziel komme?
Das Programm startet jetzt mit deiner Variante 2, doch leider werden die Parameter ignoriert.
Hast du noch ne Idee wie ich an mein Ziel komme?
Nicht ohne das exakte Programm und die genauen Parameter zu kennen.
Gruß L.
@0cool:
Dann poste doch bitte nochmal Deinen jetzigen Code. Da Du den wegen Geheimnistuerei ja immer ändern musst, überlege Dir genau, was Du änderst. Der Code aus Deinem Eröffnungsposting hätte nämlich nur eine Fehlermeldung produziert, Du hast aber geschrieben, das Programm würde sich öffnen jedoch die Parameter nicht beachten.
Gruß
Friemler
Dann poste doch bitte nochmal Deinen jetzigen Code. Da Du den wegen Geheimnistuerei ja immer ändern musst, überlege Dir genau, was Du änderst. Der Code aus Deinem Eröffnungsposting hätte nämlich nur eine Fehlermeldung produziert, Du hast aber geschrieben, das Programm würde sich öffnen jedoch die Parameter nicht beachten.
Gruß
Friemler
Hallo 0cool!
Versuchs mal so:
Gruß Dieter
Versuchs mal so:
runCommand = Chr(34) & Chr(34) & Path & "\Firma\ProgramName\Version\Client\programm.exe" & Chr(34) & " " & paraC & Chr(34) |
Gruß Dieter
Hallo 0cool,
abgesehen davon, dass in Zeile 15 Deines obigen Scripts
Gruß
Friemler
abgesehen davon, dass in Zeile 15 Deines obigen Scripts
objwshShell.Run
stehen müsste, damit es funktioniert, kann ich sonst nichts falsches daran entdecken. Baue den Programmaufruf doch mal als konstanten String in das Script ein, ohne Variablen. Mal schauen was dann passiert.Gruß
Friemler
Hi 0cool,
ich weiss nicht, was Du willst. auf der einen Seite ist der Code fast richtig, auf der anderen Seite vielleicht völlig falsch.
Also, um grundsätzlich zu funktionieren sind 2 noch 2 Fehlerchen drin.
1. Zeile 15 wshshell muss objwshshell heißen (siehe Post von Friemler)
2. in Zeile 9 fehlt vor \Firma\Prog...... ein Gänsefüsschen, also so: strsw = """" & path & "\Firma\ProgramName\Version\Client\programm.exe" & """"
Du schreibst, das in dem Original-Projekt Robocopy gestartet wurde. Kann ich so eigentlich nicht verstehen.
wshshell ist nun mal keine DOS bzw. Command Shell. Auf die von dir genutzte Art startet man eigentlich nur reine Windows Applikationen wie z.B. Calc.exe
Sollte es eine DOS Anwendung sein, dann hast Du als nächstes Problem, dass Du zwar die exe am richtigen Ort startest, dein "Standort" aber nicht im selben Pfad ist. Wenn die EXE also etwas mit Dateien in demselben Verzeichnis anstellen soll, muss Du den Pfad dafür ebenfalls miteinbinden.
Das wäre alles viel einfacher, wenn Du hier nicht einen auf Geheimdienst machen würdest und mal ansagst, wie Du Dir den tatsächlichen Aufruf vorstellst und was Du damit wo (Pfad, nicht Firma!!!) auslösen willst
Dann klärt sich so einiges.
Grüße
Gertruede
ich weiss nicht, was Du willst. auf der einen Seite ist der Code fast richtig, auf der anderen Seite vielleicht völlig falsch.
Also, um grundsätzlich zu funktionieren sind 2 noch 2 Fehlerchen drin.
1. Zeile 15 wshshell muss objwshshell heißen (siehe Post von Friemler)
2. in Zeile 9 fehlt vor \Firma\Prog...... ein Gänsefüsschen, also so: strsw = """" & path & "\Firma\ProgramName\Version\Client\programm.exe" & """"
Du schreibst, das in dem Original-Projekt Robocopy gestartet wurde. Kann ich so eigentlich nicht verstehen.
wshshell ist nun mal keine DOS bzw. Command Shell. Auf die von dir genutzte Art startet man eigentlich nur reine Windows Applikationen wie z.B. Calc.exe
Sollte es eine DOS Anwendung sein, dann hast Du als nächstes Problem, dass Du zwar die exe am richtigen Ort startest, dein "Standort" aber nicht im selben Pfad ist. Wenn die EXE also etwas mit Dateien in demselben Verzeichnis anstellen soll, muss Du den Pfad dafür ebenfalls miteinbinden.
Das wäre alles viel einfacher, wenn Du hier nicht einen auf Geheimdienst machen würdest und mal ansagst, wie Du Dir den tatsächlichen Aufruf vorstellst und was Du damit wo (Pfad, nicht Firma!!!) auslösen willst
Dann klärt sich so einiges.
Grüße
Gertruede