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

Qt仿音乐播放器:客户端唯一化

一、铺垫

1.我们采用共享内存来进行客户端的唯一化;

2.我刚看到的时候,就感觉,这是人想出来的吗?太绝了

二、实例

int main(int argc, char *argv[])
{QApplication a(argc, argv);QSharedMemory shareMemory("Widget");//当程序第一次运行时,由于共享内存的空间还没有被创建,此处的attach一定会失败//当程序第二次运行时,由于共享内存的空间已经被前一次的运行申请好,此时第二个实例再去关联就能成功//由于只能运行一个实例,让第二个实例直接退出就行if(shareMemory.attach()){shareMemory.decath();QMessageBox ::information(nullptr,"MiniMusic提示","程序已经在运行……");return 0;}shareMemory.create(1);//在物理空间申请1个字节;Widget w;w.show();return a.exec();
}

正常情况下应该先创建共享内存空间,再进行连接;我第一次运行程序先连接,连接不成功,创建共享内存;后进行以下程序代码;

第二次运行程序时会根据给的Key值{QSharedMemory shareMemory("Widget");Widget就是Key值},连接共享空间,若连接上;就证明启动了第二个程序 ,立刻结束程序;

QSharedMemory类,此类会在不同的运行环境下,有不同的表现;只说Windows环境下,只有此变量被销毁,或自动结束连接,才会结束连接;所以在if语句中,不结束连接也是可以的;但是,我更希望写全;

http://www.lryc.cn/news/515902.html

相关文章:

  • ceph文件系统
  • 【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数
  • Java jdk8新特性:Stream 流
  • 房产销售系统(源码+数据库+文档)
  • Vue 项目自动化部署:Coding + Jenkins + Nginx 实践分享
  • 从零开始开发纯血鸿蒙应用之实现起始页
  • CG顶会论文阅读|《科技论文写作》硕士课程报告
  • 【Python运维】使用Python与Docker进行高效的容器化应用管理
  • 【人工智能】基于Python与OpenCV构建简单车道检测算法:自动驾驶技术的入门与实践
  • 实时数仓: Hudi 表管理、Flink 性能调优或治理工具脚本
  • Kotlin 数据类与密封类
  • 大模型推理加速调研(框架、方法)
  • C语言进阶(3)--字符函数和字符串函数
  • 微服务拆分的艺术:构建高效、灵活的系统架构
  • 记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)
  • 计算机xinput1_4.dll丢失怎么修复?
  • 高等数学学习笔记 ☞ 连续函数的运算与性质
  • k8s基础(4)—Kubernetes-Service
  • CAN或者CANFD的Busoff的恢复时间会受到报文周期的影响么?
  • 【DevOps】Jenkins部署
  • 【MATLAB第112期】基于MATLAB的SHAP可解释神经网络回归模型(敏感性分析方法)
  • 【Shell编程 / 4】函数定义、脚本执行与输入输出操作
  • RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用
  • MySQL 01 02 章——数据库概述与MySQL安装篇
  • 运行framework7
  • 【Web】软件系统安全赛CachedVisitor——记一次二开工具的经历
  • 实现自定义集合类:深入理解C#中的IEnumerable<T>接口
  • Compression Techniques for LLMs
  • Nexus Message Transaction Services(MTS)
  • 2025年Stable Diffusion安装教程(超详细)