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

时间:2016-03-17 06:44:44

标签: c++ windows qt command-line

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

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

但我的输出如下plain cmd prompt

但是我想要像expected cmd

这样的Windows命令提示符

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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