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); } }