WinExec函数运行指定的应用程序。
提供此函数以兼容早期版本的Windows。对于基于Win32的应用程序,请使用CreateProcess功能。
UINT WinExec(
LPCSTR 【lpCmdLine】, | //命令行地址 |
UINT 【uCmdShow】 | //新的应用程序的窗口样式 |
); |
参数
【lpCmdLine】
指向包含要执行的应用程序的命令行(filename加上可选参数)的以null结尾的字符串。如果【lpCmdLine】参数中的可执行文件的名称不包含目录路径,Windows将按以下顺序搜索可执行文件:
1.应用程序加载的目录。
2.当前目录。
3.Windows系统目录。GetSystemDirectory函数检索此目录的路径。
4.Windows目录。GetWindowsDirectory函数检索此目录的路径。
5. PATH环境变量中列出的目录。
【uCmdShow】
指定如何显示基于Windows的应用程序窗口,并用于向CreateProcess功能提供STARTUPINFO参数的wShowWindow成员。有关可接受值的列表,请参阅ShowWindow功能的【nCmdShow】参数的说明。对于非基于Windows的应用程序,应用程序的PIF文件(如果有)会决定窗口状态。
返回值
如果函数成功,返回值大于31。
如果函数失败,则返回值为以下错误值之一:
值 | 含义 |
0 | 系统内存不足或资源不足。 |
ERROR_BAD_FORMAT | .EXE文件无效(非Win32 .EXE或.EXE映像中的错误)。 |
ERROR_FILE_NOT_FOUND | 找不到指定的文件。 |
ERROR_PATH_NOT_FOUND | 找不到指定的路径。 |
备注
基于Win32的应用程序应该使用CreateProcess函数,而不是使用此函数。Win32中存在WinExec功能,以便与早期版本的Windows兼容。有关如何实现WinExec功能的更多信息,请参阅LoadModule功能的备注部分。
在Win32中,当启动的进程调用GetMessage功能或达到超时限制时,WinExec函数返回。为了避免等待超时延迟,请在通过调用WinExec开始的任何进程中尽快调用GetMessage功能。
也可以看看
CreateProcess, GetMessage, GetSystemDirectory, GetWindowsDirectory, LoadModule, ShowWindow