Конференция "WinAPI" » Вывод процесса установки. [D7, WinXP]
 
  • VitAngel (27.11.08 14:26) [0]
    Вечер добрый!

    Из своего приложения запускаю 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;

    Вопрос: Могу ли я как то следить за ходом выполнения установки ?

    Буду признателен за любую помощь
  • Сергей М. © (27.11.08 14:37) [1]
    Если порожденный процесс предусматривает такой интерфейс, то можешь.
  • Юрий Зотов © (27.11.08 17:47) [2]
    Но не в ожидающем, а в другом потоке.
 
Конференция "WinAPI" » Вывод процесса установки. [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0]