<b>启动新的利用程序</b>[VC/C++编程]
本文“<b>启动新的利用程序</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在for DOS的C语言中,有一个system()函数,其功效是履行号令路程序,在VB中也有shell()函数,在Windows程序计划中WinAPI也为我们供应了近似的函数,它们就是WinExec()和ShellExecute(),下面就来谈论一下这两个函数的用法.
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);就不能翻开此文档.
2)ShellExecute()
函数原型:
HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd );
参数阐明:
hwnd窗口的句柄
lpOperation举行的操作,如"open","print","explore"辨别对应"翻开","打印","游览", 也可认为空(""),此时表示举行默许的操作. lpFile 要操作的文件.
lpParameters假如lpFile指定的是一个可履行文件则表示参数
lpDirectory操作举行的目录
nShowCmd程序的运行方法,其取值见上例.
假如这个函数调用成功,将返回实例的句柄,假如不成功,返回值包含错误信息,由于范例对比多,这里就不一一摆列了,详见WinApi的帮忙.
这样,上面的例子便可以改变成(假定窗口的句柄为Handle)
ShellExecute(Handle,"open","notepad","c:\\hdc.txt","",SW_SHOWNORMAL);
其实不用那么复杂,因为.TXT的关联程序就是记事本,所以只要这样便可以了
ShellExecute(Handle,"","c:\\hdc.txt","","",SW_SHOWNORMAL);
这个函数和WIN9X中的号令行号令"start"近似,不光可以对文件举行操作,还可以对HTTP、MAILTO等举行操作.这样我们便可以计划有超级链接气势的程序了.
在Form中然后安排两个Label,设置其属性为:
Name Caption
lbHomepage http://www.ccrun.com
lbEMail mailto:ccrun.com@163.com
并把字体改成蓝色有下划线,然后辨别在两个Label的Click事件中加入以下代码:
ShellExecute(Handle,"",lbHomepage.Caption,"","",SW_SHOWNORMAL);
ShellExecute(Handle,"",lbEMail.Caption,"","",SW_SHOWNORMAL);
OK!试试看,若何?够酷的吧!
从上面可看出,ShellExecute的功效要强得多,并且可以完好替换WinExec(),事实上,WinExec()也是为了和从前版本兼容而保存,所以,我们要尽大概利用ShellExecute().其实在WinAPI中,还有一个函数ShellExecuteEx() ,但其利用复杂,又不支持Windows NT,所以这里就不作介绍了,有爱好的可以自已查询WinAPI帮忙.
以上是“<b>启动新的利用程序</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |