0

QProcess に VBScript からの出力を読み取らせることができません。スクリプトは、単独でも QProcess から呼び出されたときにも実行され、QCreator のアプリケーション出力に出力されるため、VBS が実行されていることがわかります。トラブルシューティングのために、VBS を次のように削減しました。

WScript.StdOut.WriteLine("Hi")

私が試したQt側:

  • QProcess の finished、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);
}
4

1 に答える 1

1

QProcess::executeは静的メソッドであるため、Process->execute(script, args)と同等ですQProcess::execute(script, args)。つまり、インスタンスProcessはまったく使用されません。使用する

Process->start( script, args );
于 2012-03-02T06:41:49.800 に答える