代码如下
ShellExecute(NULL, "open", "aa.exe", NULL, NULL, SW_SHOWDEFAULT);aa.exe是一个console程序,完成一定的功能就退出了,没有消息循环.请问,我如何才能让我的主程序(执行shellexecute的程序)与aa.exe同步?
也就是判断aa.exe执行完毕后主程序才继续往执行
ShellExecute(NULL, "open", "aa.exe", NULL, NULL, SW_SHOWDEFAULT);aa.exe是一个console程序,完成一定的功能就退出了,没有消息循环.请问,我如何才能让我的主程序(执行shellexecute的程序)与aa.exe同步?
也就是判断aa.exe执行完毕后主程序才继续往执行
PROCESS_INFORMATION stProcessInfo;
memset(&stStartUpInfo,0,sizeof(STARTUPINFO));
stStartUpInfo.cb = sizeof(STARTUPINFO);
// szCommandLine放应用程序的路径
BOOL bOK = CreateProcess(NULL,(LPTSTR)szCommandLine,NULL,NULL,TRUE, NORMAL_PRIORITY_CLASS,NULL,NULL,&stStartUpInfo,&stProcessInfo);
if ( FALSE == bOK ) {
return -1;
}// 等待程序执行完成
WaitForSingleObject(stProcessInfo.hProcess,INFINITE);
CloseHandle(stProcessInfo.hProcess);
memset(&sei, 0, sizeof(SHELLEXECUTEINFO)); sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = _T("open");
sei.lpFile = _T("aa.exe");
sei.nShow = SW_SHOWDEFAULT;
ShellExecuteEx(&sei);WaitForSingleObject(sei.hProcess, INFINITE);
CloseHandle(sei.hProcess);