[QT]设置程序仅打开一个,再打开就唤醒已打开程序的窗口

需求:speedcrunch 这个软件是开源的计算器软件。配合launch类软件使用时,忘记关闭就经常很多窗口,强迫症,从网上搜索对版本进行了修改。

#include "gui/mainwindow.h"#include <QCoreApplication>
#include <QApplication>#include <QSharedMemory>
#include <QMessageBox>#include <Windows.h>
#include <WinUser.h>int main(int argc, char* argv[])
{QApplication application(argc, argv);static QSharedMemory *singleApp = new QSharedMemory("SingleApp");//创建“SingleApp”的共享内存块if(!singleApp->create(1))//创建失败,说明已经有一个程序运行,{//弹出提示框注意:该提示应该在 qApp->quit();之前,否则提示框将会一闪而过//QMessageBox::information(NULL,"tips","The program is already running");QString name = "Qt5152QWindowIcon";//窗口的类名QString windowname = "SpeedCrunch";//窗口标题名HWND hwnd = FindWindow((LPCWSTR)name.unicode(),(LPCWSTR)windowname.unicode());//查找窗口句柄if (hwnd == 0) {QMessageBox::information(NULL,"tips","not find wind");}ShowWindow(hwnd,  SW_RESTORE);//激活并置顶窗口,ShowWindow里面的参数可以网上搜一下,不同功能不同参数SetForegroundWindow(hwnd);qApp->quit();//退出当前程序return -1;}QCoreApplication::setApplicationName("SpeedCrunch");QCoreApplication::setOrganizationDomain("speedcrunch.org");MainWindow window;window.show();application.connect(&application, SIGNAL(lastWindowClosed()), &application, SLOT(quit()));return application.exec();
}

差异图下图:

findwindow的方法需要添加user32的库,因为speedcrunch已经添加,则在编译文件中未改动。 

效果:

 

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

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

相关文章

解决AD(Altium Designer)导入HFSS的dxf文件只有轮廓,填充的方法

解决Altium Designer导入HFSS的dxf文件只有轮廓&#xff0c;填充的方法 环境操作 环境 Altium Designer (19.0.4) 操作 设计》规则 左键框选 工具》转换》从选择的元素创建铺铜 选好点击apply 多重复几次&#xff0c;就全填充完了。

瑞幸带领咖啡界进入低价时代,背后的用意是什么?

瑞幸作为国内首家突破万店的咖啡品牌,为何又会推出9.9元低价购买咖啡的活动呢,据相... 在线上线下的渠道里大肆推送0.99-9.9的优惠券。 是谁还没有为瑞幸9.9元拼过命&#xff0c;小编身边的人每天靠咖啡续命&#xff0c;有时还会借用别人的9.9&#xff0c;去薅所谓的“羊毛”。…

视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理…

npm install sentry-cli失败的问题

1. 目前报错 2. 终端运行 npm set ENTRYCLI_CDNURLhttps://cdn.npm.taobao.org/dist/sentry-cli npm set sentrycli_cdnurlhttps://cdn.npm.taobao.org/dist/sentry-cli3. 再安装 npx sentry/wizardlatest -i nextjs即可成功

【Java基础篇】一文搞懂Java方法的调用与重载(超详细)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【JavaSE_primary】 目录 一、方法的概念以及使用1.1什么是方法1.2方法定义1.3方法调用的执行过程1.4形参和实参的关系 二、方法的重载方…

腾讯云服务器价格表大全_轻量服务器_CVM云服务器报价明细

腾讯云服务器租用费用表&#xff1a;轻量应用服务器2核2G4M带宽112元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、云服务器CVM S5实例2核2G配置280.8元一年、GPU服务器GN10Xp实例145元7天&#xff0c;腾讯云服务器网长期更新腾讯云轻量…

7.接着跑一下triton官方教程

5.Model Ensemble 在此示例中&#xff0c;我们将探索使用模型集成来仅通过单个网络调用在服务器端执行多个模型。这样做的好处是减少了在客户端和服务器之间复制数据的次数&#xff0c;并消除了网络调用固有的一些延迟。 为了说明创建模型集成的过程&#xff0c;我们将重用第…

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…

DP读书:鲲鹏处理器 架构与编程(十三)操作系统内核与云基础软件

操作系统内核与云基础软件 鲲鹏软件构成硬件特定软件 鲲鹏软件构成硬件特定软件1. Boot Loader2. SBSA 与 SBBR3. UEFI4. ACPI 操作系统内核Linux系统调用Linux进程调度Linux内存管理Linux虚拟文件系统Linux网络子系统Linux进程间通信Linux可加载内核模块Linux设备驱动程序Linu…

zookeeper启动失败(Error contacting service. It is probably not running.)

问题描述 启动zk时报如下错误&#xff1a; 解决办法 先查日志找找报错原因&#xff1a; 找到zk安装目录下的logs文件夹下的日志文件&#xff0c;查看连接失败原因&#xff1a; 如果是端口问题&#xff0c;修改conf文件&#xff0c;指定端口重新启动即可&#xff1a; 注&a…

SaaS多租户系统架构设计

前言&#xff1a;多租户是SaaS&#xff08;Software-as-a-Service&#xff09;下的一个概念&#xff0c;意思为软件即服务&#xff0c;即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上&#xff0c;客户可以根据工作的实际需求&#xff0c;通过互联网…

深入解析文件系统原理(inode,软硬链接区别)

第四阶段提升 时 间&#xff1a;2023年8月29日 参加人&#xff1a;全班人员 内 容&#xff1a; 深入解析文件系统原理 目录 一、Inode and Block概述 &#xff08;一&#xff09;查看文件的inode信息&#xff1a;stat &#xff08;二&#xff09;Atime、Mtime、Ctime详…