C++ Qt-显示PowerShell在QProcess中运行的结果

C++ Qt-显示PowerShell在QProcess中运行的结果,c++,windows,qt,powershell,C++,Windows,Qt,Powershell,我正在从事Qt(v4.7)中的一个项目,该项目要求我在QProcess中通过Windows PowerShell运行命令。这是我到目前为止所做的(使用一个示例命令): 这一切似乎都能正常运行,而且不会崩溃。现在,我需要能够显示运行此PowerShell命令的结果。我知道当我在cmd窗口中运行它时,它会返回大量数据,但在此之前我根本没有真正使用QProcess,而且我很难找到显示进程结果的方法。如果有人有任何建议,我们将不胜感激。谢谢 从您的代码开始 QString path = "C:/Wind

我正在从事Qt(v4.7)中的一个项目,该项目要求我在QProcess中通过Windows PowerShell运行命令。这是我到目前为止所做的(使用一个示例命令):


这一切似乎都能正常运行,而且不会崩溃。现在,我需要能够显示运行此PowerShell命令的结果。我知道当我在cmd窗口中运行它时,它会返回大量数据,但在此之前我根本没有真正使用QProcess,而且我很难找到显示进程结果的方法。如果有人有任何建议,我们将不胜感激。谢谢

从您的代码开始

QString path = "C:/Windows/system32/WindowsPowerShell/v1.0/powershell.exe";
QStringList commands;
commands.append("-Command");
commands.append("invoke-command -computername mycomputer -credential myuser {ipconfig /all}");
QProcess *p = new QProcess();
假设在MyClass类中有一个名为readyToRead()的插槽,它有一个指向QProcess的指针,p

connect(p, &QProcess::readyReadStandardOutput, myClass, &MyClass::readyToRead);
process->start(path, commands);
然后您将在插槽中收到通知

void MyClass::readyToRead()
{
    QString output(p->readAllStandardOutput());

    //Do something with the string
}

“我有麻烦了……”你试过什么?@Merlin069我真的没试过多少,只是不知道从哪里开始。我在这个类中有一个插槽,它连接到QProcess的finished()信号,因为我认为任何获取结果的操作都必须等到进程完成后才能运行,这是按预期触发的,但一旦完成,我就找不到任何方法来获取结果。我已经浏览了文档页面,但找不到任何内容来获得QProcess的结果。将插槽连接到readyReadStandardOutput信号并调用readAllStandardOutput如何?有明确的文档记录:我发现了一个小问题:当结果是错误消息时,您是否知道我需要更改什么以打印PowerShell的结果?原来我也需要归还,但现在它什么也不归还。我在这里有更多的细节:信号readyReadStandardError不适用于您,正如这里的Qt文档中定义的那样?
void MyClass::readyToRead()
{
    QString output(p->readAllStandardOutput());

    //Do something with the string
}