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

相关推荐
江公望几秒前
Qt QByteArray类型,10分钟讲清楚
开发语言·c++·qt
小灰灰搞电子几秒前
Qt Sensors 传感器框架详解
开发语言·qt
LNN20225 分钟前
Qt 5.8 中的 Qt Test:轻松实现自动化测试
开发语言·qt
2501_941111465 分钟前
C++中的组合模式变体
开发语言·c++·算法
啵啵鱼爱吃小猫咪13 分钟前
机器人具身智能汇总
开发语言
想唱rap22 分钟前
Linux下进程的状态和优先级
linux·运维·服务器·开发语言·数据结构·算法
普通网友44 分钟前
单元测试在C++项目中的实践
开发语言·c++·算法
從南走到北1 小时前
JAVA同城服务场馆预约门店预约健身房瑜伽馆预约系统支持H5小程序APP源码
java·开发语言·小程序
爱学的小码1 小时前
JavaEE初阶——多线程3(案例)
java·开发语言·单例模式·java-ee
csbysj20202 小时前
Ruby 面向对象编程深入解析
开发语言