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

相关推荐
曦夜日长14 小时前
C++ STL容器string(二):删除与插入、数据查找、自定义输入
java·开发语言·c++
jimy114 小时前
C语言中的inline function specifier(函数说明符、关键字)
c语言·开发语言
赏金术士14 小时前
Kotlin 协程底层原理(Continuation)详解
java·开发语言·kotlin
ZGi.ai14 小时前
私有化大模型接入企业系统:SSO+权限+API网关完整方案
java·开发语言·大模型·私有化部署·sso·企业架构
一念春风15 小时前
记事本(C#)
开发语言·c#
fox_lht15 小时前
第十二章 泛型、接口和生命周期
开发语言·后端·rust
jayson.h15 小时前
正则表达式:从文件名提取器件编号
开发语言·python·正则表达式
Dxy123931021615 小时前
JS如何获取元素高度
开发语言·javascript·ecmascript
凯瑟琳.奥古斯特15 小时前
页面置换算法详解与对比
开发语言·分布式·职场和发展
小杍随笔15 小时前
Axum+Leptos全栈集成实战
开发语言·后端·架构·rust