MFC调用一个程序方法.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
所以感觉你这里的PID号给了个固定值,应该抓不住对话框。 下面这段能够抓对话框,不知道是你要的效果么 void?C对话框中嵌对话框Dlg::OnBnClickedOk() { //?TODO:?在此添加控件通知处理程序代码 CRect?rec; CWnd::GetClientRect(rec);? HWND?hWnd?=?::FindWindow(NULL,?_T(TestDlg)); ::SetWindowPos(hWnd,?NULL,?0,0,0,0,SWP_NOMOVE|SWP_NOZORDER|SWP_NOSIZE|SWP_FRAMECHANGED); ::SetParent(hWnd,?this-GetSafeHwnd()); ::SetWindowPos(hWnd,?NULL,?0,?0,?rec.Width(),?rec.Height(),?SWP_NOZORDER); //CDialogEx::OnOK(); } vc++ 在程序中运行另一个程序的方法 2010-08-13 14:47 1419人阅读 评论(0) 收藏 举报 vc++nullattributes文档microsoftsecurity 在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数:?WinExec,ShellExecute?,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 ????WinExec?两个参数,前一个指定路径,后一个指定显示方式。 ????ShellExecute?可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。 ????CreateProcess?一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等。如果我们要得到足够多的关于新的进程的信息,控制新的进程的细节属性,若要达到这些目的,我们就需要使用CreateProcess函数了。 ? 三个SDK函数(?WinExec、ShellExec、CrateProcess?)的语法: ? WinExec 这个函数最简单,只有两个参数,原型如下: ? ??????UINT?WinExec( ??????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:指定的路径未找到。   虽然Microsoft认为WinExec已过时,但是在许多时候,简单的WinExec函数仍是运行新程序的最好方式。简单地传送作为第一个参数的命令行,还需要决定如何显示程序(该程序也许会忽视它)的第二个参数。通常,将其设置为SW_SHOW,也可尝试SW_MINIMIZED或SW_MAXIMIZED。WinExec不允许用CreateProcess获得的所有选项,而它的确简单。 使用方法如下: WinExec(Notepad.exe,?SW_SHOW);??//?打开记事本 WinExec(D://Program?Files//Test//Test.exe,SW_SHOWMAXIMIZED);?//?以最大化的方式打Test.exe其中这里的SW_SHOW,SW_SHOWMAXIMIZED都是执行程序时窗口的显示方式,在winuser.h中定义。 需要注意的是若用?SW_SHOWMAXMIZED?方式去加载一个无最大化按钮的程序,譬如Neterm,Calc?等等,就不会出现正常的?窗体,但是已经被加到任务列表里了。 ? ShellExecute 原型如下: ??????HINSTANCE?ShellExecute( ??????HWND?h

文档评论(0)

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

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

1亿VIP精品文档

相关文档