Wie kann ich warten, bis ein externer Prozess abgeschlossen ist?

Daher habe ich in Delphi ein Formular erstellt, mit dem ich verschiedene Sikuli-Skripte mit verschiedenen Konfigurationen ausführen kann. Ich arbeite jetzt daran, es jemandem zu ermöglichen, das Formular zu verwenden und verschiedene Sikuli-Skripte so einzurichten, dass sie nacheinander ausgeführt werden können. Wie in:

Schritt 1: SikuliScript1 mit ConfigFile1. Schritt 2: SikuliScript2 mit ConfigFile2. etc ... Das ist mein Code bisher:

procedure TSikRunForm.btnRunClick(Sender: TObject);
begin
    DirCombo:= '/C '+DirSik+'\sikuli-script.cmd' +' -r ' + DirScript + ' --args '+DirConfig;
    if SikFound then begin
      ShellExecute(Handle, nil, 'cmd.exe', pChar(DirCombo), nil, SW_SHOWNORMAL);
      Application.minimize;
    end else begin
      ShowMessage('Select the correct folder for your Sikuli installation folder');
    end;
end;

Und das funktioniert einwandfrei, das sikuli-Skript läuft einwandfrei, und während der Ausführung ist die cmd-Zeile mit den verschiedenen angezeigten Aktionen sichtbar, die ausgeführt werden. Nachdem das Sikuli-Skript fertig ist, wird die cmd-Zeile von selbst geschlossen. Der Shell-Handler weiß also, wann er den laufenden Prozess beenden muss. Meine Frage lautet also: Ist es möglich, delphi mitzuteilen: Nachdem der Handler den Prozess beendet hat, führen Sie den nächsten Prozess aus (Sikuli-Skript)? Jetzt weiß ich, dass ich mit dem gesamten createProcess in Delphi weitermachen kann, aber es scheint einfach übertrieben. Es muss einen Weg geben, dies schneller und einfacher zu tun. Hat jemand eine Ahnung?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage