2

嗨,我正在使用 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();
}
4

1 回答 1

2

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

proc.startDetached(...)

相当于:

QProcess::startDetached(...)

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

于 2014-06-16T06:58:13.427 回答