Чтение вывода консоли отдельного процесса

Привет, я запускаю отдельный процесс из Qt, используя QProcess. Я хочу прочитать консольный вывод процесса в 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();
}

person ishan3243    schedule 16.06.2014    source источник


Ответы (1)


QProcess::startDetached не является функцией-членом, это статическая функция, поэтому

proc.startDetached(...)

эквивалентно :

QProcess::startDetached(...)

Следовательно, в вашей переменной proc для отсоединенного процесса нет состояния или вывода. Используйте метод start(), если вы хотите запустить процесс как подпроцесс вашего приложения и прочитать его вывод.

person Nejat    schedule 16.06.2014