IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Как использовать Exec ?
Atos
сообщение 13.12.2003 6:08
Сообщение #1


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Помогите, please, новичку.        Как из проги на Паскале запустить другую? И какие именно проги можно таким образом запускать - любые исполняемые или только другие паскальские? Я в этом дуб дубом. Знаю, что за это отвечает процедура Exec, у которой первый параметр - имя запускаемого файла, а вот что именно указывает второй параметр? И вроде бы ещё надо использофать SwapVectors ?
Объясните, пожалуйста, как можно подробнее. Заранее спасибо.  
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
APAL
сообщение 13.12.2003 8:15
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


 Exec (процедура)    (модуль Dos)
 _________________________________
Выполняет заданную программу с заданной командной строкой.

 Объявление:
 Procedure Exec(Path, CmdLine : String);

 Режим:
Real, Protected

 Замечания:
Ошибки сообщаются в переменной DosError. При компилировании программы,
которая использует вызов Exec, уменьшите максимальный размер кучи, иначе,
возможно, что для запускаемой программы не хватит памяти (DosError = 8).

 Смотри также:
 DosError
 DosExitCode
 SwapVectors


 SwapVectors (процедура)   (модуль Dos)
 _______________________________________
Переключает указатели SaveIntXX в модуле System на текущие вектора.

 Объявление:
 Procedure SwapVectors;

 Режим:
Real, Protected

 Замечания:
Меняет содержимое указателей SaveIntXX в модуле System на текущее содержимое
векторов прерываний. SwapVectors обычно вызывается перед и после обращения к
Exec. Это гарантирует, что вызываемый процесс не будет использовать никаких
подпрограмм обработки прерываний, установленных текущим процессом и
наоборот.


И еще, в том же хелпе к пасу:
{ Пример программы для DosExitCode и Exec }

{$M $4000, 0, 0 }   { 16Kб стек, нет кучи }
Uses Dos;

Var ProgramName, CmdLine : String;
Begin
 Write('Имя программы для запуска (с путем) : ');
 ReadLn(ProgramName);
 Write('Параметры командной строки ', ProgramName, ' : ');
 ReadLn(CmdLine);
 WriteLn('Пробую запустить...');
 SwapVectors;
 Exec(ProgramName, CmdLine);
 SwapVectors;
 WriteLn('... вернулся из Exec');
 { Была ошибка ? }
 If DosError<>0 Then WriteLn('Ошибка DOS #', DosError)
 Else WriteLn('Запуск был удачным. Код выхода = ', DosExitCode);
End.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Atos   Как использовать Exec ?   13.12.2003 6:08
APAL   Re: Как использовать Exec ?   13.12.2003 8:15
Atos   Re: Как использовать Exec ?   18.12.2003 11:01
Булат Шакиров   Re: Как использовать Exec ?   18.12.2003 11:52


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.07.2025 7:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"