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

相关推荐
编程乐趣5 分钟前
C#实现自己的MCP Client
开发语言·c#
九章云极AladdinEdu6 分钟前
光子神经网络加速器编程范式研究:光子矩阵乘法的误差传播模型构建
开发语言·人工智能·深度学习·神经网络·矩阵·负载均衡·transformer
前端小巷子13 分钟前
JavaScript 垃圾回收与内存泄漏
开发语言·前端·javascript·面试
有梦想的攻城狮13 分钟前
Java的Filter与Spring的Interceptor的比较
java·开发语言·spring·interceptor·filter
54lyyyy22 分钟前
微服务项目->在线oj系统(Java版 - 4)
java·开发语言
刚入门的大一新生40 分钟前
C++初阶-list的使用1
开发语言·c++
bj328141 分钟前
从单链表 list 中删除第 i 个元素--Python
开发语言·python·list
ThetaarSofVenice1 小时前
Java虚拟机栈
java·开发语言
qq_368019661 小时前
Python结合ollama和stramlit开发聊天机器人
开发语言·python·机器人·streamlit·ollama
找不到、了1 小时前
Java 内存模型中的读、写屏障
java·开发语言