当前位置: 首页 > news >正文

Qt中打开windows的cmd窗口并显示

在windows上,用Qt的GUI程序打开另一个程序,使用QProcess即可,并且被打开的程序通常也会显示出来,但是如果想要打开dos窗口并显示,并执行其中的命令或者批处理,则需要使用QProcess提供的windows特有的函数QProcess::setCreateProcessArgumentsModifier

该函数可以在打开程序之前,对CreateProcess的参数进行设置,因为QProcess内部也是调用CreateProcess函数,只不过使用默认值。

QProcess* proc = new QProcess();
proc->setCreateProcessArgumentsModifier([](QProcess::CreateProcessArguments *args){
    args->flags |= CREATE_NEW_CONSOLE;
    args->flags &= ~CREATE_NO_WINDOW;
    args->startupInfo->wShowWindow = SW_SHOWNORMAL;
    args->startupInfo->dwFlags &= ~STARTF_USESTDHANDLES;
    args->startupInfo->dwFlags |= STARTF_USEFILLATTRIBUTE;
    args->startupInfo->dwFillAttribute = FOREGROUND_RED| FOREGROUND_GREEN| FOREGROUND_BLUE;
});
QObject::connect(proc, SIGNAL(finished), proc, SLOT(deleteLater));
proc->setProgram("cmd.exe");
//proc->setArguments(QStringList()<<"/k"<<strBat<<strSaveDir);
//proc->setWorkingDirectory(strDir);
proc->start();

上述编译中可能会发生错误,需要添加如下文件,注意添加的头文件和宏定义的顺序。

#define WIN32_LEAN_AND_MEAN
#include <qt_windows.h>

http://www.dtcms.com/a/77194.html

相关文章:

  • Git 使用SSH登陆
  • 工厂方法模式和抽象工厂模式详解
  • 【从零开始学习计算机科学与技术】计算机网络(六)传输层
  • 调整iptables规则,解决无法ssh连接服务器的问题
  • Linux中安装Git
  • Javascript 日期相关计算
  • halcon几何测量(二)计算距离和角度的函数
  • Linux主机持久化技术
  • 日常学习开发记录-input组件
  • 数据库设计实验(3)—— 分离与附加、还原与备份
  • 【Java面试场景题搜集总结】
  • Redis和MongoDB的区别
  • 【数学建模】熵权法
  • maven插件不能正确解析
  • 八、JavaScript函数
  • NAT技术-初级总结
  • MySQL :参数修改
  • springboot请求响应
  • 设计一个高性能的分布式限流系统
  • Redis的消息队列是怎么实现的
  • HarmonyOS开发,深拷贝、浅拷贝的封装和调用
  • Spring Boot 核心知识点:依赖注入 (Dependency Injection)
  • 智慧社区2.0
  • C# 中常见 JSON 处理库的优缺点对比
  • 【设计模式】3W 学习法深入剖析创建型模式:原理、实战与开源框架应用(含 Java 代码)
  • 条款43:学习处理模板化基类内的名称
  • 提示deepseek生成完整的json用于对接外部API
  • 【Film】MovieAgent:自动化电影生成通过多智能体CoT规划
  • Linux上的`i2c-tools`工具集的详细介绍;并利用它操作IMX6ULL的I2C控制器进而控制芯片AP3216C读取光照值和距离值
  • 深度学习框架PyTorch——从入门到精通(1)下载与安装