Программа скрывается за программой, которая ее называет
Используя функцию 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);