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