DWORD CreateProcess ( LPCTSTR lpAppPath, LPTSTR lpCmdLine, LPCTSTR lpCurDir)
{
STARTUPINFO startupInfo;
PROCESS_INFORMATION processInformation;
ZeroMemory( &startupInfo, sizeof( STARTUPINFO ));
startupInfo.cb = sizeof( STARTUPINFO );
ZeroMemory( &processInformation, sizeof( PROCESS_INFORMATION ));
DWORD dwExitCode = DWORD(-1);
if ( ::CreateProcess( lpAppPath, // lpszImageName
lpCmdLine, // lpszCommandLine
0, // lpsaProcess
0, // lpsaThread
FALSE, // fInheritHandles
CREATE_SUSPENDED, // fdwCreate
0, // lpvEnvironment
lpCurDir, // lpszCurDir
&startupInfo, // lpsiStartupInfo
&processInformation // lppiProcInfo
))
{
::ResumeThread(processInformation.hThread);
WaitForSingleObject( processInformation.hProcess, INFINITE );
GetExitCodeProcess( processInformation.hProcess, &dwExitCode );
}
else
{
dwExitCode = GetLastError();
}
return dwExitCode;
}
windows运行一个程序并等待其结束。
最新推荐文章于 2024-07-03 16:47:45 发布