我无法让 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);
}