Вниз
Скачать: CL | DM;

Как узнать время окончания архивации   Найти похожие ветки 

 
VitAngel   (2007-02-12 18:50) [0]

Вечер добрый! Как, после запуска архивации из программы(ShellExecute), узнать о том, что она завершена?


 
koha ©   (2007-02-12 19:05) [1]


> Вечер добрый! Как, после запуска архивации из программы(ShellExecute),
>  узнать о том, что она завершена?


И вообще не парься с этой функцией вот предлагаю другую, которая запускает процесс и ждет его окончания, если ее запускать в цикле, а когда один процес завершится, запустит другой. Отредактируешь ее мемного и сгодится,  а так полность рабочая:

function ExecAndWait(const FileName: string; const CmdShow: Integer): Longword;
var { by Pat Ritchey }
 zAppName: array[0..512] of Char;
 zCurDir: array[0..255] of Char;
 WorkDir: string;
 StartupInfo: TStartupInfo;
 ProcessInfo: TProcessInformation;
 AppIsRunning: DWORD;
begin
 StrPCopy(zAppName, FileName);
 GetDir(0, WorkDir);
 StrPCopy(zCurDir, WorkDir);
 FillChar(StartupInfo, SizeOf(StartupInfo), #0);
 StartupInfo.cb          := SizeOf(StartupInfo);
 StartupInfo.dwFlags     := STARTF_USESHOWWINDOW;
 StartupInfo.wShowWindow := CmdShow;
 if not CreateProcess(nil,
   zAppName, // pointer to command line string
   nil,      // pointer to process security attributes
   nil,      // pointer to thread security attributes
   False,    // handle inheritance flag
   CREATE_NEW_CONSOLE or // creation flags
   NORMAL_PRIORITY_CLASS,
   nil,         //pointer to new environment block
   nil,         // pointer to current directory name
   StartupInfo, // pointer to STARTUPINFO
   ProcessInfo) // pointer to PROCESS_INF
   then Result := WAIT_FAILED
 else
 begin
   while WaitForSingleObject(ProcessInfo.hProcess, 0) = WAIT_TIMEOUT do
   begin
     Application.ProcessMessages;
     Sleep(50);
   end;
   {
   // or:
   repeat
     AppIsRunning := WaitForSingleObject(ProcessInfo.hProcess, 100);
     Application.ProcessMessages;
     Sleep(50);
   until (AppIsRunning <> WAIT_TIMEOUT);
   }
   WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
   GetExitCodeProcess(ProcessInfo.hProcess, Result);
   CloseHandle(ProcessInfo.hProcess);
   CloseHandle(ProcessInfo.hThread);
 end;
end; { WinExecAndWait32 }



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
2-1171613708
kulkse
2007-02-16 11:15
2007.03.04
программа возвращает значение


2-1171360461
hooky-mars
2007-02-13 12:54
2007.03.04
Number в Парадокс


2-1170691512
The X
2007-02-05 19:05
2007.03.04
Каракули вместо кириллицы на MessageDlg в XP SP1


2-1170657197
whitebarin
2007-02-05 09:33
2007.03.04
Где найти прикольный счетчик с перелистыванием цифр?


6-1159598502
Vadim X
2006-09-30 10:41
2007.03.04
Парсинг HTML




   Наверх