winexec设置启动路径(vc中winexec使用)
本文目录
vc中winexec使用
该函数只提供对16位机子的兼容。应用程序应该使用CreateProcess函数。
Declare Function WinExec Lib “kernel32“ Alias “WinExec“ (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
说明
运行指定的程序
返回值
Long,大于31表示成功,请参考FindExecutable函数
参数表
参数 类型及说明
lpCmdLine String,包含要执行的命令行
nCmdShow Long,定义了以怎样的形式启动程序的常数值。参考ShowWindow函数的nCmdShow参数
注解
请参考对CreateProcess函数的说明,了解在目录中查找指定文件的顺序
VC中如何使用
WINSHELLAPI void WINAPI WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);
WINSHELLAPI void WINAPI WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);
参数说明:
hwnd,窗口句柄,一般为NULL。
error,出错信息。
lpstrFileName 文件名。
lpstrTitle标题名。
使用WinExec命令
⑴ 函数原型:
UINT Win Exec(LPCSTR lpCmdLine, UINT uCmdShow);
⑵ 参数:
lpCmdLine:指向一个空结束的字符串,串中包含将要执行的应用程序的命令行(文件名加上可选参数)。
uCmdShow:定义Windows应用程序的窗口如何显示,并为CreateProcess函数提供STARTUPINFO参数的wShowWindow成员的值。
⑶ 返回值:
若函数调用成功,则返回值大于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}
案例:
1)执行完关闭窗口2000和xp中:
WinExec( “cmd /c type aaa.txt “,SW_NORMAL); //执行完后立即关闭DOS窗口
或
WinExec( “cmd /k type aaa.txt “,SW_NORMAL); //执行完后不关闭DOS窗口
2)WINEXEC是异步执行。不能等待命令结束。
例如,移动文件夹,小心还未复制结束,就已经被删除了。
可用
CreateProcess( “测试程序.exe “, NULL, NULL, NULL,
FALSE, 0, NULL, NULL, &si, &mProcessInfor);
//用下面地代码等待程序执行结束:
WaitForSingleObject(mProcessInfor.hProcess, INFINITE);
winexec这样用怎么不对
WinExec(_T(“D:\ \ Program Files文件\ \ zeecalls \ \ zeecalls.exe”),SW_SHOWMAXIMIZED,,); 改变 WinExec(“D:\ \程序\文件\ \ zeecalls \ \ zeecalls.exe“,SW_SHOWMAXIMIZED);
更多文章:
java反射调用父类方法(Java中,如何通过子类对象访问到父类的方法比如父类有个A方法,public的,它的子类重载了A方法)
2024年8月15日 17:45
选项卡切换快捷键(excel表格窗口切换快捷键是什么,excel表格如何用快捷键进行窗口切换)
2024年6月30日 04:24
eclipse怎么创建js文件(怎么使用eclipse编写javascript)
2024年7月17日 21:55
htmlform表单属性(html中form属性class是什么意思)
2023年7月15日 20:00
ui培训机构骗局(被一家甲骨文培训机构骗了2万贷款学习Ui现在已经学了6个月毕业了,感觉被骗了,培训费还能要回来吗)
2024年7月11日 10:13
国内少儿编程课程加盟怎么样(少儿编程市场怎么样编程猫可以加盟吗)
2024年9月9日 08:30
与非和异或的逻辑表达式各是什么?与非门、或非门、异或门、同或门的逻辑表达式和逻辑符号怎么写
2024年6月29日 09:40
成员变量存在堆还是栈(java里的静态成员变量是放在了堆内存还是栈内存)
2024年6月24日 07:57