system

system erzeugt einen neuen Prozess.

exit_code = system(ssName, options)

Die folgenden Formen sollten nicht mehr verwendet werden:

bool = system(ssName)
bool = system(ssName, nShow)
bool = system(ssName, nShow, bSynchron)
bool = system(ssName, nShow, bSynchron, bGetExitCode)

Returnwert

Falls system() in der Form system(ssName, options) aufgerufen wird, gibt die Funktion den exit-code des aufgerufenen Prozesses zurück. Falls der Prozess nicht erzeugt werden konnte, wird ein Error-Objekt zurück gegeben (siehe error_create).

Falls system() mit 1 bis 3 Parametern aufgerufen wurde: bool ist TRUE (1) wenn der Prozess erfolgreich erzeugt werden konnte und FALSE (0), wenn der Prozeß nicht erzeugt werden konnte.

Falls system() mit bGetExitCode gleich TRUE (1) aufgerufen wurde: Falls der Prozess nicht erzeugt werden konnte, wird ein Error-Objekt zurück gegeben (siehe error_create), ansonsten der Return-Code des Prozesses. bSynchron muss TRUE (1) sein.

Parameter

ssName

ssName ist die Kommandozeile, die ausgeführt werden soll.

options

options ist ein Objekt mit folgenden Elementen:

show_window

Wird von GUI-Programmen werwendet. Der Defaultwert ist SW_SHOW (5). Liste der möglichen Werte:

SW_HIDE (0)
SW_SHOWNORMAL (1)
SW_NORMAL (1)
SW_SHOWMINIMIZED (2)
SW_SHOWMAXIMIZED (3)
SW_MAXIMIZE (3)
SW_SHOWNOACTIVATE (4)
SW_SHOW (5)
SW_MINIMIZE (6)
SW_SHOWMINNOACTIVE (7)
SW_SHOWNA (8)
SW_RESTORE (9)
SW_SHOWDEFAULT (10)
SW_MAX (10)
synchron Wenn synchron TRUE ist (Defaultwert), startet system das Programm und wartet bis es sich beendet.
timeout

Zeit in Millisekunden bis das aufgerufene Programm zwangsweise beendet wird. Wenn timeout nicht angegeben wird oder 0 ist, wird das aufgerufene Programm nicht beendet.

Falls timeout > 0 ist, wird synchron auf TRUE gesetzt.

console Bei Nicht-GUI-Programmen wird eine Console für Ein/Ausgabem erzeugt. Der Default-Wert ist FALSE (0), es wird keine Konsole erzeugt.
current_directory Zum Beispiel "c:\\test". Wenn der Parameter nicht angegeben wird, wird das aktuelle Verzeichnis des aufrufenden Prozesses verwendet.
environment Ein String der Form "name=value|name=value" mit Environment-Variablen. Da die Zeichen = und | als Trennzeichen verwendet werden, dürfen sie in name oder value nicht verwendet werden.
nShow

nShow legt den Defaultwert für den ersten Aufruf der ShowWindow-Funktion fest. Der Defaultwert ist SW_SHOW (5). Liste der möglichen Werte, siehe oben.

bSynchron

Wenn bSynchron TRUE (1) ist, wartet UniScript mit der weiteren Ausführung des Programms, bis der aufgerufene Prozess beendet ist. Falls sich das aufgerufene Programm nicht beendet, kann die Funktion das (mehrmaliges) Drücken der Escape-Taste abgebrochen werden.

Wenn bSynchron FALSE (0) ist, wird der Prozess nur gestartet und das Programm wird sofort weiter durchlaufen. Defaultwert ist FALSE (0).

bGetExitCode

Wenn bGetExitCode TRUE (1) wird der Return-Code des Prozesses zurück gegeben. Siehe Beschreibung des Return-Wertes. bSynchron muss dann ebenfalls TRUE (1) sein.

Beispiel

Starte notepad.exe und warte bis es beendet wird:

system("notepad", [.]);

Starte notepad.exe und warte nicht bis es beendet wird:

system("notepad", [. show_window = SW_SHOWMAXIMIZED, synchron = FALSE]);

Starte us.exe und gib ein Meldungsfenster aus. Wenn der Anwender nicht innerhalb von 5s auf den OK-Button drückt, beende us.exe:

ssTemp = GetTempFileName();
text_file_write(ssTemp, "MessageBox(\"Hello\");\n");
system(GetRootDirectory() + "program\\us.exe " + ssTemp, [. timeout = 5*1000]);

Angabe von Umgebungsvariablen:

def test()
{
    ssTemp = GetTempFileName();
    text_file_write(ssTemp, "[[ MessageBoxInfo("A = %s", getenv("A"));\n ]]");

    system(GetRootDirectory() + "program\\us.exe " + ssTemp,
                                 [. timeout = 5*1000, environment = "A=123"]);
}

History

Version Beschreibung
R2013.11 Neuer Parameter options.
5.3.0 Neuer Parameter bGetExitCode.

id-544257