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

时间:2014-06-16 06:19:57

标签: c++ qt qprocess console-output

您好我正在使用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();
}

1 个答案:

答案 0 :(得分:2)

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

proc.startDetached(...)

相当于:

QProcess::startDetached(...)

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