1、用QProcess调用没有窗口显示
但是任务管理栏里有进程在
2、通过system调用
QString qstrRExePath("C:/run/test.exe");
QString qstrWorkPath("C:/run");
QString str = "cd " + qstrWorkPath + " & " + qstrRExePath;
system(str.toStdString().c_str());
能弹出窗口,但是控制台进程依赖与gui进程存在而存在,做不到启动控制台进程后,主程序把自己强杀掉
3、通过WIN32API函数CreateProcess用来创建一个新的进程
注意参数
(1)si.wShowWindow = SW_SHOWNORMAL;
(2)CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP
(3)// 无限期等待线程执行完毕
// 主线程被挂起
//WaitForSingleObject(pi.hProcess, INFINITE);
static DWORD CreateIndependentProcessShowWindows(char const *strProcess)
{
//LOG_SETUP_DEBUG("[cmd]: %s", strCmd);
std::string strCmdCopy(strProcess);