C++中运行外部程序.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C中运行外部程序

关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项: 【1】定义头文件 必须定义以下两个头文件: #include shlobj.h // 可替换为 windows.h #include shellapi.h 如果定义了头文件 #include windows.h的话就不必定义 #include shlobj.h了。 【2】定义路径 C++中所表示的路径要用 \\ 而不是平常所用的 \ ,所以以上三个函数表示路径都为:disk:\\Directory\\...\\File name WinExec(D:\\Program Files\\Test\\Test.exe,SW_SHOWMAXIMIZED); ShellExecute(NULL,open,C:\\Test.txt,NULL,NULL,SW_SHOWNORMAL); 1、调用API: int system( const char *command );   你可以传入一命令,启动某个程序。如ping , YourExe等等   不过这里有几点要值得注意:   (1)、他不会立即返回,直到你启动的程序执行完成。   (2)、如果你启动是windows程序,它仍然会启动一个控制台,这就给人感觉太差劲了,但如果本身是控制台的,而且又需要等待它的完成,那这将是比较好的选择。   (3)、它的返回值代表是否执行成功以及程序的退出码。   (4)、不能运行*.txt文件或 2、调用API:   UINT WinExec(    LPCSTR lpCmdLine, // command line    UINT uCmdShow // window style   );   这个API与API:system同样的使用简单,同用是使用命令行型式。   不过它与API:system相比,有几个优点:   (1)、它将启动了一个新进程,并且立即返回,因此你的程序无需等待。   (2)、它的多了一个参数:uCmdShow,通过它你可以一定程度上控件窗体的显示,比如让它后台运行而不显示出来。   (3)、它无论启动控制台程序还是windows程序都只做你想要做的事。   它的不足之处:   (1)、它完全与本进程脱离,无法对做些必要的控制   (2)、无法得知启动的程序是否退出。   (3)、得不到启动的程序的退出码。   (4)、不能运行*.txt文件或 3、调用:   HINSTANCE ShellExecute(    HWND hwnd,    LPCTSTR lpVerb,    LPCTSTR lpFile,    LPCTSTR lpParameters,    LPCTSTR lpDirectory,    INT nShowCmd   );   它也有WinExec同样的缺点。   它虽然传回一个HINSTANCE,但他并不是真正的句柄,我们仅能拿它来做一些错误值检查。   但它的功能比前两者更强大,它执行系统的Shell命令。   1、2中如果传入“XX.txt”,它们将不能成功执行,ShellExecute却能很好地执行,它将启动一个默认的文字处理程序来打开它。   1、2中如果传入“”,将不能成功执行,而ShellExecute却能很好地执行,它将启动一个默认浏览器来打开这个网站。   参数讲解:   参数1 hwnd:一窗体句柄,将作为启动的程序的父窗体。   参数2 lpVerb:你想执行的操作(edit 、explore、find、open、print、properties),你也可以传入NULL值,它将执行默认操作(win2000以前与以后处理略有差别,请见MSDN)。   参数3 lpFile:一文件名或操作的对象。   参数4 lpParameters:如果lpFile是一可执行文件,这个将作为它的参数。它的格式由执行的操作决定。而且当lpFile为一document文件时,此参数需为NULL。   参数5 lpDirectory:指定它的工作目录。   参数6 nShowCmd:窗体显示的控制。   以下是几个例子:   //启动一个Dos命令, 启动windows程序相同   ::ShellExecute(this-GetSafeHwnd(), NULL, ping, , NULL, SW_SHOWNORMAL);   //打开一个文件   ::ShellExecute(this-GetSafeHwnd(), open, ReadMe.txt, NULL, NULL, SW_SHOWNORMAL)

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档