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 回答