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);
}