一.QT调用外部exe
使用QT中的QProcess方法:
#include <QProcess>
QProcess process;
QString cmd ="test.exe"; //放在主程序exe同级目录下
process.start(cmd); // 启动可执行程序方法一
//process.startDetached(cmd); // 启动可执行程序方法二
//process.execute(cmd); // 启动可执行程序方法三
注意,此处启动可执行程序的方式有3种:
1.start:外部程序启动后,将随主程序的退出而退出
2.startDetached:外部程序启动后,当主程序退出时并不退出,而是继续运行。
3.execute:带阻塞
二.QT调用批处理命令
方法一:QT方式
1.调用命令与读取返回内容
#include <QProcess>
#include <QDebug>
#include <QTextCodec>
QProcess process;
QString cmd ="ping www.baidu.com";
process.start(cmd); // 启动可执行程序
//process.startDetached(cmd);
//process.execute(cmd);
//读取返回内容
process.waitForFinished();
process.waitForReadyRead();
QByteArray qba = process.readAll();
QTextCodec* pTextCodec = QTextCodec::codecForName("System");
assert(pTextCodec != nullptr);
QString str = pTextCodec->toUnicode(qba);
qDebug("aaa: %s\n",str.toStdString().c_str());
方法二:c语言方式
1.用system函数实现
#include <stdlib.h>
char* cmd ="ping www.baidu.com";
system(cmd);
注意:这种方法会阻塞进程