Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как запустить bat файл [D7, XP]


aibolit ©   (2007-09-02 07:42:00) 

каким образом создаваемый бат файл в проге запускать так как
WinExec(Pchar(Bat_Path),SW_NORMAL) не срабатыает ; где  Bat_Path - это строка


Инс   (2007-09-02 14:36:00) [1]


> [9] Инс ©   (02.09.07 11:35)

Ну раз уж Анатолий не комментирует, прокомментирую я. У Соломона и Руссиновича очень хорошо расписан алгоритм работы CreateProcess (для системы Win2000). На первых этапах запуска система должна выбрать образ файла, подлежащего выполнению. Далее по этому образу будет создан объект "раздел" (Section), который впоследствии будет загружен в адресное пространство созданного процесса. Так вот, образ выбирается по следующему правилу:
1. Если запускается Win32-приложение, то именно его файл и будет использоваться в качестве образа.
2. Если файл BAT или CMD, то в качестве образа будет выбран Cmd.exe
3. Если Win16-приложение или ДОС-приложение (EXE, COM или PIF), то в качестве образа - Ntvdm.exe
4. Posix-приложение - Posix.exe
5. OS/2-приложение - Os2.exe
Образ в п.2 - п.5. называется образ поддержки.


Инс   (2007-09-02 11:35:00) [2]


> А для двух других руками.

Нет, Анатолий, Вы не правы.


Anatoly Podgoretsky   (2007-09-02 11:26:00) [3]

Это если ShellExecute
А для двух других руками.


Инс   (2007-09-02 11:11:00) [4]


> требуется запускать командный процессор

Система сама это сделает.


Anatoly Podgoretsky   (2007-09-02 11:00:00) [5]

Единственно, что надо знать дополнительно, так это то, что для запуска БАТ файла (а почему БАТ файла, а не CMD?) требуется запускать командный процессор, поскольку БАТ файл не программа ОС, а данные для командного процессора.


Anatoly Podgoretsky   (2007-09-02 10:58:00) [6]


> а если рассписать ответ tmp

У человека высшее образование и за плечами уже 25 лет жизни.


sniknik   (2007-09-02 10:07:00) [7]

> не срабатыает ;
значит гдето ошибка. WinExec это вполне рабочая функция, то что она устарела и не рекомендуется к использованию не отменяет ее.


tmp   (2007-09-02 09:29:00) [8]

> а если рассписать ответ

Что расписывать? Для запуска bat-файла вместо WinExec использовать одну из функций: ShellExecute или CreateProcess. Подробности в MSDN.


aibolit   (2007-09-02 09:00:00) [9]

а если рассписать ответ tmp


tmp   (2007-09-02 08:45:00) [10]

ShellExecute, CreateProcess


Наверх

Титульная страница Поиск, карта сайта Написать письмо