C++創建進程


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM