如果调用你的程序无法修改,并且调用你的程序是用的等待程序结束再继续执行,需要用第三个程序来解决。
程序 A: 调用你的程序的主程序
程序 B: 你现在编的程序
程序 C: 再做一个程序
现在的方案是:
程序 A: 不做修改。让 A 调用 C, 等 C 结束时 A 才能继续运行。
程序 B: 不做修改。
程序 C: 调用程序 B,然后继续运行,即可以在 B 执行时自动退出,这时 A 会继续运行
正常执行调用程序都是不等待程序的结束,如果要等待程序的结束需要另外编程序。
下面的程序是等待程序结束的方法,如果你不需要等待,if 里面的循环就不需要了,去掉就可以了。
STARTUPINFO sinf;
PROCESS_INFORMATION pinf;
memset(&sinf,0,sizeof(STARTUPINFO));
//调用 sFileName 执行
if(CreateProcess(sFileName.c_str(),sCmdLine.c_str(),NULL,NULL,false,CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&sinf,&pinf))
{
//执行成功,用下面的循环等待 sFileName 程序执行结束
unsigned long iExCode;
while(GetExitCodeProcess(pinf.hProcess,&iExCode))
{
if(iExCode!=STILL_ACTIVE) //如果 sFileName 程序执行结束了
break; //结束循环,停止等待
Application->ProcessMessages(); //在等待时为了避免程序停止反应,调用这个函数
}
}
--------------------next---------------------
阅读(1066) | 评论(0) | 转发(0) |