Программа скрывается за программой, которая ее называет

Используя функцию CreateProcess из модуля Winapi.Windows, я открываю исполняемый файл из другого, но когда он открывается, он не отображается поверх исполняющего его исполняющего файла.

Вот процедура, которую я собрал:

procedure Tfrm1.ExecuteProg(Cmdl: String; Pause: Boolean);
var SI : TStartUpInfo;
    PI: TProcessInformation;
begin
 FillChar(SI, Sizeof(SI), 0);

 with SI do
 begin
  cb := SizeOf(TStartUpInfo);
  dwFlags := StartF_UseShowWindow;
  wShowwindow := SW_SHOWNORMAL;
 end;

 if (CreateProcess(nil, PChar(Cmdl), nil, nil, False, 0, nil, nil, SI, PI)) then
  if Pause then WaitForInputIdle(PI.hProcess, INFINITE);
end;

Есть ли что-то еще, что мне нужно делать?

Любая помощь будет отличной, спасибо.

1 ответ

После того, как вышеупомянутая процедура вызвана, я сделал следующее:

WinHandle := FindWindow(nil, WindowName);

if WinHandle <> null
  then SetForegroundWindow(WinHandle);
Другие вопросы по тегам