您好我正在使用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();
}
答案 0 :(得分:2)
QProcess::startDetached
不是成员函数,它是一个静态函数,所以
proc.startDetached(...)
相当于:
QProcess::startDetached(...)
因此,对于分离进程,proc
变量中没有状态或输出。如果要将进程作为应用程序的子进程启动并读取其输出,请使用start()
方法。