《QT从基础到进阶·二十八》QProcess使用,从一个exe程序启动另一个exe程序

QString exePath = QCoreApplication::applicationDirPath();  //获取要启动的另一个exe路径
exePath = exePath +/OffLineProcess.exe”;                //路径+exe名称
QProcess* Process = new QProcess;                         //创建新的进程
Process->start(exePath);             //在当前程序中启动新的exe程序
if (!Process->waitForStarted(1000))  //1000ms 阻塞当前程序1s等待Process执行完成return false;

如果在当前程序中启动另一个exe程序,并希望在启动这个exe程序时能够传值,可以如下操作:

QStringList list("value1, value2, value3");
Process->start(exePath, list);

list参数会被另一个exe程序的main函数接受
在这里插入图片描述
正常argv[0]显示的是exe所在的路径,argv[1]才是接受的参数
可以这样写:
If (argc == 2) w.RevTest(argv[1]);

启动外部exe程序的两种方式:
在这里插入图片描述
简而言之:
QProcess::start()与QProcess::execute()都能完成启动外部程序的任务,但start()是非阻塞的,而execute()是阻塞的。换句话说,execute()=start()+waitforFinished()。
Start()启动了外部程序会接着走下面的程序,execute()启动了外部程序会等到外部程序结束才会走下面的程序。

除了在我们自己写的程序中启动外部程序,我们还可以通过命令行启动外部程序并传值:
先通过cmd打开命令行,加入我们在D:\MTFTmp2\mlx\x64\Debug目录下写了一个OffLineProcess.exe程序,现在我们通过命令行来启动它。

D:\MTFTmp2\mlx\x64\Debug>OffLineProcess  "1024,1024,50,50,75,1000/finish1.txt"

前一个只需要输入软件名称后面不用加.exe后缀,后一个字符串是把字符串内容传递给外部程序,通过外部程序的main(int argc, char*argv[])获取字符串内容,启动外部程序需要一个路径,一个参数,所以argc = 2,argv[0]存放路径,argv[1]存放参数。

在这里插入图片描述

📢博客主页: 主页
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 梦回阑珊 原创,首发于 CSDN,转载注明出处🙉
📢代码改变世界,你来改变代码!✨

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/178106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询(二)——前端el-pagination实现

系列文章 【Springboot】基于注解式开发Springboot-Vue3整合Mybatis-plus实现分页查询—后端实现 文章目录 系列文章系统版本实现功能实现思路后端传入的数据格式前端el-table封装axois接口引入Element-plus的el-pagination分页组件Axois 获取后台数据 系统版本 后端&#xf…

如何创建标准操作规程(SOP)[+模板]

创建、分发和管理流程文档和逐步说明的能力是确定企业成功的关键因素。许多组织依赖标准操作规程(SOP)作为基本形式的文档,指导他们的工作流程操作。 然而,SOP不仅仅是操作路线图;它们就像高性能车辆中的先进GPS系统一…

易货:一种古老而有效的商业模式

在当今的商业世界中,我们常常听到关于电子商务、互联网和社交媒体等新技术的讨论。然而,尽管这些新技术为我们的日常生活带来了许多便利,但它们并没有完全取代传统的商业模式。其中,易货模式是一种古老而有效的商业模式&#xff0…

香港:考虑将虚拟资产列为投资移民资产

11 月 13日消息,香港政府在重新启动投资移民计划后,正考虑将持牌虚拟资产交易平台的比特币等虚拟资产列为可接受的投资项目。这一措施旨在折大投资移民的资产范围,以吸引更多高净值人士在香港落户。尽管有声音呼吁将房地产投资纳入资格范围&a…

屏蔽机房与普通机房有什么不同?

屏蔽机房与普通机房在设计和功能上存在一些明显的区别。下面是一些区别的主要方面: 电磁屏蔽:屏蔽机房采用了电磁屏蔽材料来减少电磁波的干扰。屏蔽机房能够有效地将外部的电磁干扰隔离开来,确保机房内设备的安全运行。 物理安全:…

C#多线程入门概念及技巧

C#多线程入门概念及技巧 一、什么是线程1.1线程的概念1.2为什么要多线程1.3线程池1.4线程安全1.4.1同步机制1.4.2原子操作 1.5线程安全示例1.5.1示例一1.5.2示例二 1.6C#一些自带的方法实现并行1.6.1 Parallel——For、ForEach、Invoke1.6.1 PLINQ——AsParallel、AsSequential…

AI机器学习实战 | 使用 Python 和 scikit-learn 库进行情感分析

专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https:/…

Springboot-aop的使用

aop:面向切面编程&#xff0c;可以看作是面向对象的补充 举例 1.依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.1</version><relativePath/>…

流量分析(信息安全铁人三项赛分区赛2-5.18)

题目描述 目录 题目描述 黑客的IP是多少 服务器1.99的web服务器使用的CMS及其版本号(请直接复制) 服务器拿到的webshell的网址(请输入url解码后的网址) 服务器1.99的主机名 网站根目录的绝对路径(注意最后加斜杠) 黑客上传的第一个文件名称是什么 黑客进行内网扫描&am…

立仪科技光谱共焦在半导体领域的应用

半导体技术在近年来以极快的速度发展&#xff0c;对质量和精密度的要求也不断提升。在这样的背景下&#xff0c;用于材料与设备研究的先进检测技术如光谱共焦成像将自然地找到一席之地。下面我们将详细探讨一下光谱共焦在半导体领域中的应用。 光谱共焦技术&#xff0c;通过在细…

微信小程序 解决tab页切换过快 数据出错问题

具体问题&#xff1a;切换tab页切换过快时,上一个列表接口未响应完和当前列表数据冲突 出现数据错误 具体效果如下&#xff1a; 解决方式&#xff1a;原理 通过判断是否存在request 存在中断 并发送新请求 不存在新请求 let shouldAbort false; // 添加一个中断标志 let re…

神领物流 day03-支付微服务 扫码支付业务功能详解

课程安排 支付微服务的需求了解项目中的代码规范阅读渠道管理相关的代码理解分布式锁的应用阅读支付宝扫码支付的代码阅读微信支付扫码支付的代码xxl-job的入门学习读懂同步支付状态的两种方式 1、背景说明 目前支付微服务完成了支付宝和微信的对接&#xff0c;主要实现的功…