Недавно добавленные исходники

•  TDictionary Custom Sort  1 838

•  Fast Watermark Sources  1 870

•  3D Designer  3 289

•  Sik Screen Capture  2 293

•  Patch Maker  2 472

•  Айболит (remote control)  2 293

•  ListBox Drag & Drop  1 891

•  Доска для игры Реверси  69 542

•  Графические эффекты  2 492

•  Рисование по маске  2 026

•  Перетаскивание изображений  1 591

•  Canvas Drawing  1 589

•  Рисование Луны  1 606

•  Поворот изображения  1 224

•  Рисование стержней  1 276

•  Paint on Shape  907

•  Генератор кроссвордов  1 419

•  Головоломка Paletto  1 105

•  Теорема Монжа об окружностях  1 450

•  Пазл Numbrix  1 025

•  Заборы и коммивояжеры  1 301

•  Игра HIP  864

•  Игра Go (Го)  829

•  Симулятор лифта  960

•  Программа укладки плитки  803

•  Генератор лабиринта  963

•  Проверка числового ввода  863

•  HEX View  998

•  Физический маятник  867

•  Задача коммивояжера  918

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Подождать завершения 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;





Похожие по теме исходники

Ожидание завершения процесса

Консольное DOS приложение

MozaaEXT DOS Emulator

Драйвер клавиатуры под DOS

 



Copyright © 2004-2023 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter   Ссылка на Telegram