示例:
启动一个带有参数的程序
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;
}
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;
}