我正在使用 Qt (v4.7) 开发一个项目,该项目要求我在 QProcess 中通过 Windows PowerShell 运行命令。这是我目前所拥有的(使用示例命令):
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();
process->start(path, commands);
这一切似乎都能正常运行并且没有崩溃。现在,我需要能够显示运行此 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
}
关于c++ - Qt - 显示通过 QProcess 运行的 PowerShell 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789178/