进程传递进程句柄的问题 求指点
我想实现A进程启动B进程,B进程等到A进程完全退出再执行代码
想法是:A进程启动B进程时,把自己的进程句柄通过命令行传递给B,BWait这个句柄 但是不成功啊,有什么问题啊? 求指点
A进程:
- C/C++ code
STARTUPINFO si={sizeof(si)}; PROCESS_INFORMATION pi; ZeroMemory(&pi,sizeof(pi)); SECURITY_ATTRIBUTES sa; sa.nLength=sizeof(sa); sa.lpSecurityDescriptor=NULL; sa.bInheritHandle=true; TCHAR szBuf[]=_T("TestCall.exe"); HANDLE hdProcessT=OpenProcess(PROCESS_ALL_ACCESS,NULL,GetCurrentProcessId()); TCHAR szHandle[100]={0}; _stprintf(szHandle,_T("%d"),(int)hdProcessT); CloseHandle(hdProcessT); bool ret=CreateProcess(szBuf,szHandle,&sa,NULL,true,NULL,NULL,NULL,&si,&pi); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); system("pause");
B进程:
- C/C++ code
LPSTR p=GetCommandLine(); HANDLE hd=(HANDLE)(atoi(p)); WaitForSingleObject(hd,INFINITE); cout<<"OVER"<<endl;
[解决办法]