Funktionsreferenz

RunWait

Startet ein externes Programm und pausiert die Ausführung des Autoit-Skripts, bis das externe Programm beendet ist.

RunWait ( "program" [, "workingdir" [, show_flag [, opt_flag ]]] )

 

Parameter

program Der komplette Pfad des Programms (.EXE, .BAT, .COM oder .PIF), die ausgeführt werden soll. (siehe Bemerkungen)
workingdir [optional] Der Pfad, in dem das Programm ausgeführt werden soll (Arbeitsverzeichnis). Dies ist nicht der Pfad des Programms.
show_flag [optional] Das "show"-Flag für das ausgeführte Programm:
  @SW_HIDE = Verstecktes Fenster (alternative Eingabe: default)
  @SW_MINIMIZE = Minimiertes Fenster
  @SW_MAXIMIZE = Maximiertes Fenster
opt_flag [optional] Steuert verschiedene Optionen, die die Interaktion zwischen Parent- und Child-Prozess betreffen (STDIO).
  0x10000 ($RUN_CREATE_NEW_CONSOLE) = Der Child-Kommandozeilenprozess wird in einem eigenen Kommandozeilenfenster ausgeführt. Dieses Flag ist nur dann sinnvoll, wenn die Parent-Anwendung als Kommandozeilenapplikation kompiliert wurde.

 

Rückgabewert

Erfolg: Liefert den ExitCode des ausgeführten Programms.
Fehler: Gibt 0 zurück und setzt @error auf ungleich Null.

 

Bemerkungen

Pfade mit Leerzeichen müssen in Anführungszeichen gesetzt werden.

Um DOS Befehle auszuführen, ist RunWait(@ComSpec & " /c " & "commandName") zu benutzen. Nicht die Leerzeichen vor und nach "/c" vergessen!

Nach dem Start des externen Programms wird das Autoit Skript solange pausiert, bis das externe Programm beendet ist. Um ein externes Programm zu starten, ohne das Autoit-Skript zu pausieren, ist die Run-Funktion zu benutzen.

Einige Programme scheinen direkt nach dem Start den ReturnCode zurückzuliefern, obwohl sie noch laufen. Diese Programme erzeugen andere Prozesse, die evtl. mit der Funktion ProcessWaitClose abgefangen werden können.

 

Verwandte Funktionen

ProcessWait, ProcessWaitClose, Run, ShellExecute, ShellExecuteWait, RunAs, RunAsWait

 

Beispiel


Local $val = RunWait(@WindowsDir & "\Notepad.exe", @WindowsDir, @SW_MAXIMIZE)
; Skript wartet bis der Editor wieder beendet wurde
MsgBox(0, "Programm gab folgenden Exitcode zurück:", $val)