windows WinExec()

2022-09-14 15:12:47 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

2 3 4 5 6

#include<windows.h> intmain() { WinExec("notepad.exe",SW_SHOW);//运行计事本 return0; }

返回值:

若 函数调用成功,则返回值大于31。若 函数调用失败,则返回值为下列之一:

① 0: 系统内存或资源已耗尽。

② ERROR_BAD_FORMAT:EXE文件无效(非Win32.EXE或.EXE影像错误)。

③ ERROR_FILE_NOT_FOUND:指定的文件未找到。

④ ERROR_PATH_NOT_FOUND:指定的路径未找到。

大于 31 {调用成功}

等于 0 { 内存不足}

ERROR_FILE_NOT_FOUND = 2; {文件名错误}

ERROR_PATH_NOT_FOUND = 3; {路径名错误}

ERROR_BAD_FORMAT = 11; {EXE 文件无效}

//uCmdShow 参数可选值:

SW_HIDE = 0; {隐藏, 并且 任务栏也没有最小化图标}

SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}

SW_NORMAL = 1; {同 SW_SHOWNORMAL}

SW_SHOWMINIMIZED = 2; {最小化, 激活}

SW_SHOWMAXIMIZED = 3; {最大化, 激活}

SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}

SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}

SW_SHOW = 5; {同 SW_SHOWNORMAL}

SW_MINIMIZE = 6; {最小化, 不激活}

SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}

SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}

SW_RESTORE = 9; {同 SW_SHOWNORMAL}

SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}

SW_MAX = 10; {同 SW_SHOWNORMAL}

代码语言:javascript复制
在Windows程序设计中WinAPI也为我们提供了类似的函数,它就是WinExec()
1)WinExec() 函数原型: 
UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow); 
参数说明:(激活的意思是能接受焦点,即标题栏变成蓝色) 
lpCmdLine:以0结尾的字符串,命令行参数。 
uCmdShow:新的应用程序的运行方式。其取值如下: 
SW_HIDE 隐藏 
SW_MAXIMIZE 最大化 
SW_MINIMIZE 最小化,并把Z order顺序在此窗口之后(即窗口下一层)的窗口激活 
SW_RESTORE 激活窗口并还原为初始化大小 SW_SHOW 以当前大小和状态激活窗口 
SW_SHOWDEFAULT 以默认方式运行 
SW_SHOWMAXIMIZED 激活窗口并最大化 
SW_SHOWMINIMIZED 激活窗口并最小化 
SW_SHOWMINNOACTIVE 最小化但不改变当前激活的窗口 
SW_SHOWNA 以当前状态显示窗口但不改变当前激活的窗口 
SW_SHOWNOACTIVATE 以初始化大小显示窗口但不改变当前激活的窗口 
SW_SHOWNORMAL 激活并显示窗口,如果是最大(小)化,窗口将会还原。第一次运行程序 时应该使用这个值 
比如说,我想要用记事本打开"C:HDC.TXT",以正常方式运行: 
WinExec("notepad c:\hdc.txt",SW_SHOWNORMAL); 
如果调用成功,这个函数会返回一个不小于31的值,否则调用失败,其返回值的意义如下: 
0 系统内存或资源不足 
ERROR_BAD_FORMAT .EXE文件格式无效(比如不是32位应用程序) 
ERROR_FILE_NOT_FOUND 指定的文件设有找到 
ERROR_PATH_NOT_FOUND 指定的路径没有找到 
这个函数和system()非常类似,只能运行.EXE文件,这样在WINDOWS中有它不尽人意的地方,比如不能用此方法通过关联的方法打开文件,例如WinExec("1.html",SW_SHOWNA);就不能打开此文档。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157679.html原文链接:https://javaforall.cn

0 人点赞