Учись программированию на C++ Builder бесплатно!
Содержание[Скрыть]

Функция WinExec() позволяет запустить из окна запускаемого приложения любое указанное приложение. WinExec() совместима с 32-битной Windows и с более ранними версиями, и может запускать любые файлы приложений Windows, MS-DOS и PIF (Program Information File).

Синтаксис

int WinExec(const char *CmdLine, unsigned int CmdShow);

Параметры

  • CmdLine – это указатель на строку или командная строка, содержащая имя запускаемого файла с необязательными параметрами. При указании только имени файла без пути его расположения, то Windows начнёт его поиск в следующей последовательности:
    1. Каталог, в котором было запущено приложение.
    2. Текущий каталог.
    3. Каталог системного раздела Windows с помощью функции GetSystemDirectory.
    4. Каталог Windows с помощью функции GetWindowsDirectory.
    5. С помощью окружения PATH, содержащий список каталогов.
  • CmdShow – задаёт вариант отображения запускаемого приложения Windows и имеет множества значений.
Значение Описание
SW_HIDE
0
Скрывает указанное окно приложения.
SW_SHOWNORMAL
SW_NORMAL
1
Отображает окно приложения и делает его активным. При отображении восстанавливается исходный размер и положение.
SW_SHOWMINIMIZED
2
Сворачивает в трей окно приложения и делает его активным.
SW_SHOWMAXIMIZED
SW_MAXIMIZE
3
Разворачивает и делает активным окно приложения.
SW_SHOWNOACTIVATE
4
Отображает окно приложения с его последним размером и положением.
SW_SHOW
5
Отображает окно приложения и делает его активным с последним размером и положением.
SW_MINIMIZE
6
Сворачивает в трей окно приложения и делает активным следующее по порядку.
SW_SHOWMINNOACTIVE
7
Отображает окно приложения в свёрнутом виде.
SW_SHOWNA
8
Отображает окно приложения в его текущем положении и размере.
SW_RESTORE
9
Отображает окно приложения и делает его активным. При отображении восстанавливается исходный размер и положение.
SW_SHOWDEFAULT
10
Задаёт параметры по умолчанию, указанные в структуре STARTUPINFO, передаваемые функцией CreateProcess().
SW_FORCEMINIMIZE
11
Сворачивает в трей окно приложения, если даже его поток не отвечает.

Возвращаемое значение

При успешном завершении функции WinExec(), она возвращает значение больше 31.

В случае сбоя, WinExec() возвращает одно из значений:

Значение Номер ошибки Описание
0 0 Нехватка ресурсов системы или памяти.
ERROR_FILE_NOT_FOUND 2 Запускаемый файл не найден или не существует.
ERROR_PATH_NOT_FOUND 3 Указанный каталог не существует.
ERROR_BAD_FORMAT 11 Ошибка в запускаемом файле .exe

Примечание

WinExec() имеет достоинство: она совместима с ранними версиями Windows. Начиная с Win32, рекомендуется использовать функцию CreateProcess().

Пример запуска программы

WinExec() запускает программу «cubook.exe» с параметром SW_RESTORE.

WinExec("cubook.exe", SW_RESTORE);

Пример запуска MS-DOS

WinExec("COMMAND.COM", SW_RESTORE); //Запуск командной строки
Поделиться