示例:

启动一个带有参数的程序

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

执行一个Dos命令

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

 

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

vc++启动子进程_dos命令_04
vc++启动子进程_dos命令_04    
// 关闭子进程的主线程句柄
vc++启动子进程_dos命令_04
    CloseHandle(pi.hThread);
vc++启动子进程_dos命令_04    
// 等待子进程的退出
vc++启动子进程_dos命令_04    
//WaitForSingleObject(pi.hProcess, INFINITE);
vc++启动子进程_dos命令_04    
// 获取子进程的退出码
vc++启动子进程_dos命令_04    
//GetExitCodeProcess(pi.hProcess, &dwExitCode);
vc++启动子进程_dos命令_04    
// 关闭子进程句柄
vc++启动子进程_dos命令_04
    CloseHandle(pi.hProcess);
vc++启动子进程_dos命令_04
vc++启动子进程_dos命令_04    
return true;
vc++启动子进程_子进程_23}