vc++启动子进程


示例:

启动一个带有参数的程序

Execute("c:/1.exe", " -a  ");

执行一个Dos命令

Execute("", " 1.bat cmd /C  ");

 

//参数 文件绝对路径 和 命令行
bool Execute(LPCTSTR pszExeFile,LPCTSTR pszCmdLine)
{
    
// 启动子进程
    PROCESS_INFORMATION pi;
    STARTUPINFO si 
= {sizeof(si)};
    BOOL ret 
= CreateProcess(pszExeFile, (LPTSTR)pszCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    
if (!ret) 
    
{
        
return false;
    }


    
// 关闭子进程的主线程句柄
    CloseHandle(pi.hThread);
    
// 等待子进程的退出
    
//WaitForSingleObject(pi.hProcess, INFINITE);
    
// 获取子进程的退出码
    
//GetExitCodeProcess(pi.hProcess, &dwExitCode);
    
// 关闭子进程句柄
    CloseHandle(pi.hProcess);

    
return true;
}
原文地址:https://www.cnblogs.com/hzcya1995/p/13318842.html