Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: 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 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.047 c
15-1171050097
ArtemESC
2007-02-09 22:41
2007.03.04
Как сканировать книги в djvu???


15-1171193492
Parus
2007-02-11 14:31
2007.03.04
Всё этот самый ASP VBScript


1-1168682116
Skopaas
2007-01-13 12:55
2007.03.04
Выходной параметр процедуры


15-1170829866
torch_of_justice
2007-02-07 09:31
2007.03.04
Орнамент, плитка


1-1168598554
DelphiLexx
2007-01-12 13:42
2007.03.04
VarArrayCreate