Содержание материала

Каким образом организовать ожидание завершения DOS-задачи? Например, надо подождать, пока заархивируется файл, и далее обработать его.

 

Code:

uses Windows;

 

procedure RunRarAndWait;

var

si: TStartupInfo;

pi: TProcessInformation;

begin

//подготовливаем записи si и pi к использованию

FillChar(si, SizeOf(si));

si.cb := SizeOf(si);

FillChar(pi, SizeOf(pi));

//попытаемся запустить рар

if CreateProcess('rar.exe', 'parameters',

nil, nil, //безопасность по умолчанию

false,    //не наследовать хэндлов

0,        //флаги создания по умолчанию

nil,      //переменные среды по умолчанию

nil,      //текущая директория по умолчанию

si,       //стартовая информация

pi)       //а в эту запись получим информацию о созданом процессе

then

begin

   //удалось запустить рар

   //подождем пока рар работает

   WaitForSingleObject(pi.hProcess, INFINITE);

   //убираем мусор

   CloseHandle(pi.hProcess);

   CloseHandle(pi.hThread);

end

else

   //выдаем сообщение об ощибке

   MessageDlg(SysErrorMessage(GetLastError), mtError, [mbOK], 0);

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

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

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить