Процедура Exec

модуль Dos
Назначение:
Выполняет указанную программу, передавая заданную строку параметров (командную строку).
Целевая платформа: Реальный режим, защищенный режим.
Описание: procedure Exec(Path, S: String)
Примечания:
Имя программы указывается в параметре Path, а строка параметров содержится в параметре S. Для выполнения внутренней команды DOS запустите файл EXAMPLE.CОМ. Например:
      Exec('EXAMPLE.COM','/C DIR *.PAS');

/C перед командой является запросом на запуск файла EXAMPLE. COМ (но не других программ). Возможные коды ошибок можно получить с помощью функции DosError. Этими кодами могут быть 2, 8, 10 и 11. Код завершения процесса можно получить с помощью функции DosExitCode.

До начала выполнения программы процедура Ехес не изменяет распределение памяти. Таким образом, при компиляции программы, использующей процедуру Ехес, необходимо обеспечить задание максимального размера динамически распределяемой области памяти, иначе памяти может не хватить (DosError = 8).

См. также: DosExitCode, SwapVectors, DosError, SaveIntXX.
Пример:

{ 16К выделяется для стека, динамически распределяемая область не запрашивается и не резервируется }
    {$M $4000,0,0}
uses Dos;
var
    ProgramName, CmdLine : string;
begin
   Write('Программа, которую нужно выполнить (включая полное
         имя маршрута): ');
   Readln(ProgramName);
   Write('Командная строка, которую нужно передать в ',
          'программу ', ProgramName, ':');
   Readln(CmdLine);
   Writeln('Начало выполнения Exec...');
   Exec(ProgramName, CmdLine);
   Writeln('...возврат из Exec');
    if DosError <> 0 then                        { ошибка? }
       Writeln('Ошибка DOS #', DosError)
    else
        Writeln
('Вызов Exec прошел успешно. Код завершения ',
           'порожденного процесса = ', DosExitCode);
end.