我无法让 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);
}
最佳答案
QProcess::execute
是一个静态方法,所以 Process->execute(script, args)
等同于 QProcess::execute(script, args )
,即您的实例 Process
根本没有被使用。使用
Process->start( script, args );
关于c++ - 通过 QProcess 执行 VBS 从不发出 readyStandardOutPut,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523812/