ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

QT调用批处理命令及外部exe方法

2026/9/21 13:18:09 拓冰建站 浏览量
QT调用批处理命令及外部exe方法

一.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);

注意:这种方法会阻塞进程

参考:https://miracle.blog.csdn.net/article/details/135150916