Функция WinExec

WinExec, оставлена для совместимости с ранними версиями Windows, но я рекомендую для обычного запуска программы с командной строкой использовать эту. У нее мало параметров запуска.

Используемый модуль – Windows.

Описание: WinExec (FileName: PChar; CmdShow: Cardinal) : Cardinal;

где: FileName – путь, имя запускаемого приложения, параметры командной строки. Все указывается в одной строке;

CmdShow – стиль окна. Показывает, в каком состоянии будет отображаться окно при запуске.

Параметры отображения окна CmdShow:

SW_HIDE Запускаемое приложение делается невидимым
SW_MAXIMIZE Расширяет окно на весь экран
SW_MINIMIZE Запускаемое приложение минимизируется. После запуска активизируется окно высшего уровня, т.е. окно, откуда было запущено это приложение
SW_RESTORE Делает окно таким, каким оно было запущено в последний раз
SW_SHOW Отображает окно в своем текущем размере и позиции

Для не-Windows приложений определяет состояние окна файл PIF, если таковой имеется в наличии. Если необходимо закрывать окно после завершения работы такого приложения необходимо создать PIF ярлык к нему в том же каталоге с таким же названием и поставить галочку "Закрывать окно по завершению сеанса работы". Все дополнительные параметры запуска устанавливаются там же.

Возвращаемые значения функции WinExec:

нормальный запуск
системе не хватает памяти или ресурсов
ERROR_BAD_FORMAT EXE файл поврежден или имеет неверный формат (Windows на такой файл говорит, что он не является приложением Win32)
ERROR_FILE_NOT_FOUND файл не найден
ERROR_PATH_NOT_FOUND путь к файлу задан неверно

Если имя выполняемого файла в параметре FileName не содержит пути директории, Windows производит поиск выполняемого файла в такой последовательности:

1. Каталог из которого приложение было запущено. Это рабочий каталог

2. Системный каталог Windows (обычно C:WINDOWSSYSTEM).

3. Каталог Windows.

4. Директории, указанные в переменной операционной среды в среде PATH. Узнать о каталогах этой переменной можно, введя PATH в командной строке сеанса MS-DOS.

Пример использования функции WinExec в программе:

WinExec ('command.com', SW_SHOW); // запускает сеанс MS-DOS