Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Подождать завершения DOS-задачи

Выдержка из лекций компьютерных курсов. Изучают DOS и Norton Commander. Дословно: Запуск команды NORTON. Если запуск команды NORTON не включен в команду автозапуска, либо в процессе работы осуществлялся выход программы NORTON, то запустить ее можно с помощью посредства nc.exe - это запускающий файл программы NORTON, находится он в каталоге NC, где собрана вся программа.

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


 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;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS