繁体   English   中英

在Qt应用程序中运行Windows命令提示符命令

[英]Running windows command prompt commands in a Qt application

我需要通过Qt应用程序运行一个外部exe,这需要在Windows命令提示符下输入命令。

  QString exePath = "C:\Windows\system32\cmd.exe";
  QProcess pro;
  pro.start(exePath);
  pro.execute("cmd.exe");

但是我得到的输出如下普通的cmd提示符

但是我想要像预期的cmd一样的Windows命令提示符

您需要从QProcess标准输出中读取并在屏幕上打印。 您可以使用pro.waitForReadyRead() ,如果它返回true,请执行

QByteArray arr = pro.readAllStandardOutput();
QString str(arr);
qDebug() << str;

更好的决定是使用信号插槽机制并实现onReadyToRead()插槽并将QProcess readyReadStandardOutput()信号连接到该插槽。

pro.start(exePath);
pro.execute("cmd.exe");

您不应该同时使用这两种方法,QProcess :: execute是静态成员。

您需要启动分离的进程:

QString exePath = "C:\Windows\system32\cmd.exe";
QProcess pro;
pro.startDetached(exePath);
pro.waitForStarted();
//Event Loop here

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM