QQ登录

只需一步,快速开始

225上位机VC MFC打开运行外部程序直到其结束进程

[ 复制链接 ]

225上位机VC MFC打开运行外部程序直到其结束进程

225上位机VC MFC打开运行外部程序直到其结束进程
225上位机VC MFC打开运行外部程序直到其结束进程
功能展示
时常我们的程序在调用外部的程序或自身的子模块时,在用户退出外部程序时,不想让用户操作我们的程序,我们当前例程实现调用外部程序功能,直到被调用的外部程序退出后我们的例程才响应用户的操作请求,效果如图;
要点提示
打开一程序直到其退出为止,此功能我们可以通过函数WaitForSingleObject()来实现 ;
函数原型WORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds );
参数说明:
1. hHandle[in]:对象句柄。可以指定一系列的对象,如Event、Job、Memory resource notification、Mutex、Process、Semaphore、Thread、Waitable timer等。
2.dwMilliseconds[in]:定时时间间隔,单位为milliseconds(毫秒).如果指定一个非零值,函数处于等待状态直到hHandle标记的对象被触发,或者时间到了。如果dwMilliseconds为0,对象没有被触发信号,函数不会进入一个等待状态,它总是立即返回。如果dwMilliseconds为INFINITE,对象被触发信号后,函数才会返回;
实现功能
1.新建基于对话框的应用程序
2.拖拽按钮<目录测试程序---等其结束><打开注册表---等其结束>关联函数
  1. void CGkbc8Dlg::OnOpen()
  2. {
  3.         STARTUPINFO StartupInfo;
  4.         PROCESS_INFORMATION ProInfo;
  5.         memset(&StartupInfo,0,sizeof(StartupInfo));
  6.         StartupInfo.cb = sizeof(StartupInfo);
  7.         BOOL bResult = CreateProcess(NULL,"regedit.exe",NULL,NULL,TRUE,DETACHED_PROCESS,NULL,NULL,&StartupInfo,&ProInfo);
  8.         if (bResult)
  9.                 WaitForSingleObject(ProInfo.hProcess,INFINITE);
  10. }
  11. void CGkbc8Dlg::OnOpen0()
  12. {
  13.         char buf[MAX_PATH];
  14.         GetModuleFileName(NULL,buf,MAX_PATH);
  15.         CString sEXEPathName(buf);
  16.         sEXEPathName=sEXEPathName.Left(sEXEPathName.ReverseFind('\\')+1);
  17.         sEXEPathName+="test.exe";
  18.         //<>
  19.         STARTUPINFO StartupInfo;
  20.         PROCESS_INFORMATION ProInfo;
  21.         memset(&StartupInfo,0,sizeof(StartupInfo));
  22.         StartupInfo.cb = sizeof(StartupInfo);
  23.         BOOL bResult = CreateProcess(NULL,sEXEPathName.GetBuffer(0),NULL,NULL,TRUE,DETACHED_PROCESS,NULL,NULL,&StartupInfo,&ProInfo);
  24.         if (bResult)
  25.                 WaitForSingleObject(ProInfo.hProcess,INFINITE);
  26. }
复制代码
3.在WIN7等系统上打开注册表还得具有管理员权限,可添加例程根目录\res\AppName.exe.manifest到自己的工程目录下,载入到工程中,资源目录命名为24,资源命名为1,直接编辑直接双击生成的程序便可;AppName.exe.manifest文件为高版本编辑器生成的文件,在此复制使用即可;
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:225.上位机VC MFC打开运行外部程序直到其结束进程.rar 
文件大小:129.49 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索