如何在程序中调用其他应用程序.docVIP

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

有些时候,我们需要在一个应用程序中打开另外的应用程序,我这几天就做了这样的事,总结了一些东西,希望可以跟大家一起分享和交流一下。其中有可能有一些东西是错误的或者走了弯路,恳请大家能够给我提意见!另外我这些天一直在学习多线程与多进程,期待找到一些共同进步的人! ? ? 闲话少说了,还是回答主题上面来。要在应用程序中启动其他的应用程序,有3个函数可以使用,下面我一一说说他们(我以打开D:\Program Files\zeecalls\目录下的zeecalls.exe应用程序为例): ? 1、Winexec ? 这个函数最简单,只有两个参数,原型如下: ? UINT WinExec( ? LPCSTR lpCmdLine, // address of command line ? UINT uCmdShow // window style for new application ? ); ? 使用方法如下: ? WinExec(_T(D:\\Program Files\\zeecalls\\zeecalls.exe),SW_SHOWMAXIMIZED); ? 这句话将会以最大化的方式打开zeecalls.exe,需要注意的是,在VC中,‘/’需要以‘//’来写。 ? 2、ShellExecute ? shellExecute比WinExex灵活一点,所以参数就要多一点,原型如下: ? HINSTANCE ShellExecute( ? HWND hwnd, //父窗口句柄 ? LPCTSTR lpOperation,//打开方式 ? LPCTSTR lpFile, //待打开的文件名 ? LPCTSTR lpParameters, LPCTSTR lpDirectory,//文件路径 ? INT nShowCmd ); ? 同样,我们也可以通过这个函数来打开我们需要的文件: ? ShellExecute(NULL,_T(open),_T(zeecalls.exe),NULL,_T(D:\\Program Files\\zeecalls\\),SW_SHOWNORMAL); ? 这句话是以用正常的显示方式打开zeecalls.exe3、CreateProcess ? 上面的几种方式都实现了我们在自己的应用程序中打开其他的应用程序的目的,但是,我们没有得到足够多的关于新的进程的信息,也没有使用过多的手段去控制新的进程的细节属性,所以,如果要达到这些目的,我们就需要使用CreateProcess函数了,首先看看这个函数的原型: ? BOOL CreateProcess( ? LPCTSTR lpApplicationName, //执行程序名 ? LPTSTR lpCommandLine, // 参数行 ? //下面两个参数描述了所创建的进程和线程的安全属性,如果为NULL则使用默认的安全属性 ? LPSECURITY_ATTRIBUTES lpProcessAttributes, // process security attributes ? LPSECURITY_ATTRIBUTES lpThreadAttributes, // thread security attributes ? BOOL bInheritHandles, // 继承标志 ? DWORD dwCreationFlags, // 创建标志 ? LPVOID lpEnvironment, // 环境变量 ? LPCTSTR lpCurrentDirectory, // 运行该进程的初始目录 ? LPSTARTUPINFO lpStartupInfo, // 用于在创建子进程时设置各种属性 ? LPPROCESS_INFORMATION lpProcessInformation //用于在进程创建后接受相关信息 ? ); ? 在上面的参数中,使用了两个比较重要的数据结构:STARTUPINFO和PROCESS_INFORMATION。这两个结构的定义分别如下: ? typedef struct _STARTUPINFO { // si ? DWORD cb; //结构长度 ? LPTSTR lpReserved; //保留 ? LPTSTR lpDesktop; //保留 ? LPTSTR lpTitle; //如果为控制台进程则为显示的标题 ? DWORD dwX; //窗口横坐标 ? DWORD dwY; //窗口丛坐标 ? DWORD dwXSize; //窗口宽度 ? DWORD dwYSize; //窗口高度 ? DWORD dwXCountChars; //控制台窗口字符号宽度 ? DWORD dwYCoun

文档评论(0)

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

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

1亿VIP精品文档

相关文档