嗨,我正在使用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()
方法。