//以下语句是在一个应用程序中用来启动另外一个程序。有点不懂,请高手指教!!
//请问CreateProcess后,另外一个程序即启动运行,
//可是CloseHandle是怎么回事呀?执行CloseHandle语句后不是把创建的进程结束吗? STARTUPINFO StartupInfo;
memset(&StartupInfo,0,sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
// 启动新进程时保持原来的光标
StartupInfo.dwFlags = STARTF_FORCEOFFFEEDBACK; char* runhome;
char testcmdpath[128]; runhome = getenv("TESTHOME");
if(runhome)
sprintf(testcmdpath, "%s%s",runhome,
"/bin/testcmd.exe");
else  return;
char szCmdLine[128];
strcpy(szCmdLine, "-UP");
PROCESS_INFORMATION ProcessInfo;
if ( !CreateProcess( testcmdpath,
szCmdLine,
NULL,NULL,FALSE,0,NULL,NULL,
&StartupInfo,
&ProcessInfo) )
{
DWORD dwErrCode = GetLastError();
TRACE("\tError: CreateProcess failed, Errcode = %ld\n",dwErrCode);
return;
} HANDLE hProcess = ProcessInfo.hProcess;
HANDLE hThread  = ProcessInfo.hThread; if(!CloseHandle(hThread))
TRACE("\tError: close handle of the thread failed, ErrCode = %ld!\n",GetLastError());
if(!CloseHandle(hProcess))
TRACE("\tError: close handle of the process failed, ErrCode = %ld!\n",GetLastError());