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

标签 c++ qt vbscript stdout qprocess

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

相关文章:

qt - QtDesigner 中的重叠小部件

带有工具按钮的 Qt ItemDelegate : can't click

java - 在 linux 机器上使用 java 调用 Excel 宏

xml - 使用 VBscript 从节点和子节点的 XML 中提取数据

c++ - 在 itemDelegate 中获取当前索引模型

mysql - 经典 ASP 添加记录到 MySQL

c++ - 三十部分库中的线程安全

c++ - 制作索引创建类

c++ - 迭代指针后,如何通过指针正确删除 double 组?

c++ - 正整数 N 作为使用堆栈的正整数之和