我需要通过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命令提示符答案 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