Каким образом организовать ожидание завершения 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; |
- Назад
- Вперёд >>
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!