我要在一个进程启动另一进程,子进程用下面的方法启动子进程。

1.WinExec("msasync.exe",SW_SHOW);2. CreateProcess (NULL,"msasync.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)   
但子进程运行一半后,必须主进程退出后,才能继续进行,请问各位如何解决这个问题

解决方案 »

  1.   

    1、BOOL GetExitCodeProcess(
      HANDLE hProcess,
      LPDWORD lpExitCode
    );
    一旦進程不再运行,别的進程可以调用GetExitCodeProcess来检查由hProcess标识的進程是否已经终止运行。注意,hProcess必须有PROCESS_QUERY_INFORMATION的权利,所以你那样创建进程是不合适的,具体参见msdn。
    2、或者用GetExitCodeThread判断进程的主线程是否结束,同理:)
      

  2.   

    我上面的问题可能没说明白:
     我想用一个主进程启动一个子进程msasync.exe(注msasync.exe是Microsoft activesync 3.5的安装程序)
    我试用了下面两种方法:
    1.WinExec("msasync.exe",SW_SHOW);
    2. CreateProcess (NULL,"msasync.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi) 
    但结果都一样,都是首先启动了msasync.exe,并执行了解压,拷贝文件,但执行到这儿后,就不在继续向下执行,只有主进程退出后,才继续执行以后的安装工作,
    我不知这个问题如何解决,请各位老师赐教。