Como posso esperar até que um processo externo seja concluído?

Então eu fiz um formulário no Delphi que me permite executar vários scripts de sikuli com várias configurações. O que eu estou trabalhando agora é tornar possível para alguém usando o formulário, configurar vários scripts de sikuli para serem executados após o outro. Como em:

Etapa 1: SikuliScript1 com o ConfigFile1. Etapa 2: SikuliScript2 com o ConfigFile2. etc ... Este é o meu código até agora:

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;

E isso funciona perfeito, o script sikuli roda perfeitamente, e durante a execução, a linha cmd é visível com as várias ações mostradas que estão sendo executadas. Depois que o script do sikuli for concluído, a linha do cmd será fechada por conta própria. Portanto, o manipulador de shell sabe quando encerrar o processo em execução. Então, minha pergunta é: É possível dizer ao delphi: Após o manipulador ter fechado o processo, execute o próximo processo (Sikuli Script)? Agora eu sei que posso ir com todo o createProcess em delphi, mas parece um exagero. Tem que haver uma maneira de fazer isso mais rápido e mais fácil. Alguém tem uma pista?

questionAnswers(4)

yourAnswerToTheQuestion