功能:演示等待通过CreateProcess创建的进程结束
#include <stdio.h>
#include <Windows.h>
int main()
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
memset( &si, 0x00, sizeof(si) );
si.cb = sizeof(si);
memset( &pi, 0x00, sizeof(pi) );
// Start the child process.
if ( CreateProcess( L"c:\\windows\\system32\\cmd.exe", // No module name (use command line)
NULL, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi )
)
{
DWORD oldTime =GetTickCount();
DWORD dwRetun=0;
WaitForSingleObject(pi.hProcess,INFINITE);
DWORD newTime=GetTickCount();
DWORD dwTime=(newTime-oldTime)/1000;
GetExitCodeProcess(pi.hProcess,&dwRetun);
printf("程序运时长: dwTime = %d 退出时返回值: %d\n", dwTime, dwRetun);
getchar();
}
return 0;
}