Форум — Ответы     (  К темам )
 ?  Alex: как из билдера запустить другую программу (exe) (28-02-2003 00:14:49)
Подскажите пожалуста как из программы на билдере запустить отдельный exe фаил и если можно то и показать маленький пример
Спасибо
 Dan (28-02-2003 00:38:18)
Воспользуйся функцией WinExec.
WinExec — Запускает указанное приложение

Описание
Функция WinExec позволяет выполнить указанное приложение. Параметр lpCmdLine является указателем на строку с нулевым символом в конце, содержащую имя выполняемого файла и, если необходимо, параметры командной строки.
Если имя указано без пути, то Windows ищет выполняемый файл в следующей последовательности:


1? Каталог, из которого загружено приложение.

1? Текущий каталог.

1? Системный каталог Windows, возвращаемый функцией GetSystemDirectory.

1? Каталог Windows, возвращаемый функцией GetWindowsDirectory.

1? Список каталогов из переменной окружения PATH.

Параметр uCmdShow определяет форму представления окна запускаемого приложения Windows. Для приложений не Windows, для файлов PIF и т.д. состояние окна определяет само приложение.

При успешном выполнении запуска приложения функция WinExec возвращает значение, большее 31. Если возвращено меньшее значение, это свидетельствует об ошибке.

Достоинством функции WinExec является ее совместимость с ранними версиями Windows. Собственно для этого она и сохраняется в WIN32, хотя для Win32 рекомендуется пользоваться функцией CreateProcess (об этой функции см. встроенную в C++Builder справку).

При работе с Win32 функция WinExec завершает работу, если вызванное приложение вызывает функцию GetMessage или заканчивается выделенный лимит времени. Таким образом, ожидание можно прервать, предусмотрев в процессе, запущенном с помощью WinExec, в нужный момент вызов функции GetMessage.
Пример:
WinExec("file.exe",SW_RESTORE);
запускает программу file.exe. Оператор
WinExec("nc",SW_RESTORE);
запускает Norton Commander. Оператор
WinExec("COMMAND.COM",SW_RESTORE);
приводит к запуску MS-DOS.
 Dan (28-02-2003 00:40:37)
Можешь также попробовать через CreateProcess, но это сложнее.