- //通过启动一个进程,并等待其结束
- int ExecuteAndWaitForCompletion(CString strcmd,bool show)
- {
- STARTUPINFO si;
- ZeroMemory( &si, sizeof(si) );
- si.cb=sizeof(STARTUPINFO);
- si.dwFlags=STARTF_USESHOWWINDOW;//使用wShowWindow
- if(show)
- {
- si.wShowWindow=SW_SHOW;//设置wShowWindow为可见
- }
- else
- {
- si.wShowWindow=SW_HIDE;//设置wShowWindow为隐藏
- }
- PROCESS_INFORMATION pi;
- ZeroMemory( &pi, sizeof(pi) );
- if( !CreateProcess//创建进程
- ( NULL, strcmd.GetBuffer(),NULL,NULL,FALSE,0,NULL,NULL,&si,&pi ))
- {
- AfxMessageBox(_T("进程创建错误! "));
- return -1;
- }
- WaitForSingleObject( pi.hProcess, INFINITE );//等待进程结束
- CloseHandle( pi.hProcess );
- CloseHandle( pi.hThread );
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/220520133499.html
来源: http://www.codesnippet.cn/detail/220520133499.html