STARTUPINFO用於指定新進程的主窗口特性的一個結構。
PROCESS_INFORMATION在創建進程時相關的數據結構之一,該結構返回有關新進程及其主線程
的信息。
void CCreateProgressDlg::StartProgress() { CString csCommandLine; char chWindowsDir[MAX_PATH]; char chCommandLine[MAX_PATH]; DWORD dwExitCode; PROCESS_INFORMATION pi; STARTUPINFO si;//用於指定新進程的主窗口特性的一個結構 memset(&si, 0, sizeof(si)); si.cb = sizeof(STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW;//SW_HIDE隱藏窗口 //得到windows目錄 GetWindowsDirectory(chWindowsDir, MAX_PATH); //啟動“記事本”程序的命令行 csCommandLine = CString(chWindowsDir) + "\\NotePad.exe"; ::strcpy(chCommandLine, csCommandLine); //啟動“記事本”作為子進程 BOOL ret = CreateProcess(NULL, chCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); if (ret) { //關閉子進程的主線程句柄 CloseHandle(pi.hThread); //等待子進程的退出 WaitForSingleObject(pi.hProcess, INFINITE); //獲取子進程的退出碼 GetExitCodeProcess(pi.hProcess, &dwExitCode); //關閉子進程句柄 CloseHandle(pi.hProcess); } }