Текущий архив: 2005.02.13;
Скачать: CL | DM;
Вниз
Как запустить другое приложение и дождаться его завершения? Найти похожие ветки
← →
SergP © (2005-01-27 23:40) [0]Консольное приложение должно создать файл, заархивировать его с помощью внешнего архиватора (arj), а затем с архивом выполнить определенные действия. однако если запускать arj обычными методами, то выполнения приложения при этом не приостанавливается. А ведь мне нужно дождаться пока не закончится архивирование. Как это можно сделать?
← →
DrPass © (2005-01-27 23:43) [1]CreateProcess + WaitForSingleObject
← →
Gero © (2005-01-27 23:43) [2]function ExecAndWait(FileName: string): Boolean;
var
zAppName: array[0..512] of Char;
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
Res: Cardinal;
begin
StrLCopy(zAppName, PChar(FileName), Length(FileName));
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_SHOW;
if not CreateProcess(nil, zAppName, nil, nil, False, CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
Result := False
else
begin
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, Res);
Result := Res = 0;
end;
end;
Страницы: 1 вся ветка
Текущий архив: 2005.02.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.216 c