gpt4 book ai didi

c++ - 通过 QProcess 执行 VBS 从不发出 readyStandardOutPut

转载 作者:行者123 更新时间:2023-11-28 08:09:11 25 4
gpt4 key购买 nike

我无法让 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com