Russian Belarusian English German Japanese Ukrainian

WinExec

CuBook3.55

Функция WinExec позволяет управлять формой представления окна запускаемого приложения. Эта функция может работать в любых версиях Windows и выполнять любые файлы: приложения Windows, MS-DOS, файлы PIF и т.п. Функция WinExec определяется следующим образом:
int WinExec(const char *CmdLine, unsigned int CmdShow);
Параметр CmdLine является указателем на строку с нулевым символом в конце, содержащую имя выполняемого файла и, если необходимо, параметры командной строки. Если имя файла указано без пути, то Windows будет искать выполняемый файл в каталогах в следующей последовательности:
1. Каталог, из которого загружено приложение.
2. Текущий каталог.
3. Системный каталог Windows, возвращаемый функцией GetSystemDirectory.
4. Каталог Windows, возвращаемый функцией GetWindowsDirectory.
5. Список каталогов из переменной окружения PATH.
 
Параметр CmdShow определяет форму представления окна запускаемого приложения Windows. Чаще всего используется значение SW_RESTORE, при котором окно запускаемого приложения активизируется и отображается на экране. Если это окно в данный момент свернуто или развернуто, то оно восстанавливается до своих первоначальных размеров и отображается в первоначальной позиции. Для приложений не Windows, для файлов PIF и т.д. состояние окна определяет само приложение.
При успешном выполнении запуска приложения функция WinExec возвращает значение, большее 31. При неудаче могут возвращаться следующие значения:
Значение Номер Описание
0 0 Не хватает памяти или ресурсов системы.
ERROR_BAD_FORMAT 11 Ошибочный файл .exe (например, не для Win32 .exe).
ERROR_FILE_NOT_FOUND 2 Указанный файл не найден.
ERROR_PATH_NOT_FOUND 3 Указанный каталог не найден.
Достоинством функции WinExec является ее совместимость с ранними версиями Windows. Собственно для этого она и сохраняется в Win32, хотя для Win32 рекомендуется пользоваться функцией CreateProcess.
Оператор запускает программу file.exe:
WinExec("file.exe",SW_RESTORE);
Оператор приводит к запуску MS-DOS:
WinExec("COMMAND.COM",SW_RESTORE);
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить