-
Вечер добрый!
Из своего приложения запускаю setup для установки продукта с помощью следующей функции:
function ExecAndWait(const FileName, Params: ShortString; const WinState: Word): boolean; var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: ShortString; begin { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x } CmdLine := '"' + Filename + '" ' + Params; FillChar(StartInfo, SizeOf(StartInfo), #0); with StartInfo do begin cb := SizeOf(StartInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WinState; end;
Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo);
{ Ожидаем завершения приложения } if Result then begin WaitForSingleObject(ProcInfo.hProcess, INFINITE); { Free the Handles } CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); //progress_.exit; end; end;
Вопрос: Могу ли я как то следить за ходом выполнения установки ?
Буду признателен за любую помощь
-
Если порожденный процесс предусматривает такой интерфейс, то можешь.
-
Но не в ожидающем, а в другом потоке.
|