PROCESS_INFORMATION g_procInfo;
BOOL RunIt(LPCSTR szExeFile, LPCSTR szArgs, BOOL bMinimized)
// call this function to run another program in a separate process
{
UpdateData(TRUE);
STARTUPINFO si;
si.cb = sizeof(STARTUPINFO);
si.lpReserved=NULL;
si.lpDesktop = "";
si.lpTitle = NULL;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = bMinimized? SW_MINIMIZE : SW_NORMAL;
si.cbReserved2 = 0;
si.lpReserved2 = NULL;
return CreateProcess(szExeFile, szArgs, NULL, NULL,
FALSE, CREATE_NEW_CONSOLE|NORMAL_PRIORITY_CLASS,
NULL, ".\\", &si, &g_procInfo);
}
BOOL HasExited()
// call this function to check if the process has exited
{
DWORD code;
if (GetExitCodeProcess(g_procInfo.hProcess, &code)
&& code != STILL_ACTIVE)
{
return TRUE;
}
return FALSE;
}