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

相关推荐
那年窗外下的雪.7 小时前
鸿蒙ArkUI布局与样式进阶(十二)——自定义TabBar + class类机制全解析(含手机商城底部导航案例)
开发语言·前端·javascript·华为·智能手机·harmonyos·arkui
Larry_Yanan7 小时前
QML学习笔记(四十六)QML与C++交互:Q_PROPERTY宏映射
c++·笔记·qt·学习·ui·交互
马拉萨的春天7 小时前
探索Objective-C中的对象复制:深入理解copy和mutableCopy
开发语言·ios·objective-c
啊森要自信7 小时前
【MySQL 数据库】使用C语言操作MySQL
linux·c语言·开发语言·数据库·mysql
千码君20167 小时前
Go语言:对其语法的一些见解
开发语言·后端·golang
mjhcsp8 小时前
C++ char 类型深度解析:字符与字节的双重身份
开发语言·c++·char
程序猿John8 小时前
python深度学习之爬虫篇
开发语言·爬虫·python
peiwang2458 小时前
Linux系统中CoreDump的生成与调试
java·linux·开发语言
努力也学不会java8 小时前
【Spring】Spring事务和事务传播机制
java·开发语言·人工智能·spring boot·后端·spring
虚行8 小时前
WPF入门
开发语言·c#·wpf