Выполнение VBS через QProcess никогда не испускает readyStandardOutPut - PullRequest
0 голосов
/ 02 марта 2012

Я не могу заставить QProcess прочитать какие-либо выходные данные из моего VBScript. Сценарий выполняется как сам по себе, так и при вызове из QProcess, и выводит его в вывод приложения QCreator, поэтому я знаю, что моя VBS выполняется. Для устранения неполадок я сократил VBS до:

WScript.StdOut.WriteLine("Hi")

Qt-сторона, которую я пробовал:

  • Подключение QProcess завершено, readyReadStandardOutput, readyReadStandardError сигналы
  • Я также пытался установить setProcessChannelMode в QProcess :: MergedChannels

В конструкторе MainWindow:

connect(Process,SIGNAL(readyReadStandardOutput()),this,SLOT(processDone()));

Слоты:

void MainWindow::processDone()
{
qDebug()<<"Out";
/*QString str;
str.append(Process->readAllStandardOutput());
qDebug()<<str;*/
}


void MainWindow::runProcess()
{
    QString script = "cscript";
    QStringList args;
    args<<QString(QDir::currentPath()+ "/myVBs.vbs")<<"//NoLogo";
    Process->execute(script,args);
}

1 Ответ

1 голос
/ 02 марта 2012

QProcess::execute - статический метод, поэтому Process->execute(script, args) эквивалентно QProcess::execute(script, args), т. Е. Ваш экземпляр Process вообще не используется. Используйте

Process->start( script, args );
...