读取分离进程的控制台输出

Reading console output of a detached process

本文关键字:控制台 输出 进程 分离 读取      更新时间:2023-10-16

嗨,我正在使用QProcess从Qt发射一个分离的进程。我想在QString中读取进程的控制台输出。下面是代码

#include <QCoreApplication>
#include <QProcess>
#include <QDebug>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QProcess proc;
    proc.startDetached("C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe", 
                        QStringList() << "/c" << "c:\Qt\Qt5.3.0\Tools\QtCreator\bin\tryScript\firstBatch.bat");

    proc.waitForFinished();
    qDebug() << proc.readAllStandardOutput();
    return a.exec();
}

QProcess::startDetached不是成员函数,它是静态函数,所以

proc.startDetached(...)

等价于:

QProcess::startDetached(...)

因此,在分离进程的proc变量中没有状态或输出。如果您想将该进程作为应用程序的子进程启动并读取其输出,请使用start()方法。