Запуск внешней программы с ожиданием окончания выполнения


 

procedure ExecAndWait(FileName:String);
var
Rslt: LongBool;
StartUpInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
begin
FillChar(StartupInfo, SizeOf(TStartupInfo), #0);
with StartupInfo do
begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOW;
end;
Rslt := CreateProcess(nil, PChar(FileName), nil, nil, False,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
if Rslt then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
else
begin
CloseHandle(ProcessInfo.hThread);
CloseHandle(ProcessInfo.hProcess);
end;
end;


 

Запуск внешней программы с ожиданием окончания выполнения
Пролистать наверх