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

专门做特产的网站厦门网络推广公司

专门做特产的网站,厦门网络推广公司,嘉兴网站建设多少钱,甘肃省两学一做专题网站Qt 利用共享内存实现一次只能启动一个程序 文章目录 Qt 利用共享内存实现一次只能启动一个程序摘要利用共享内存实现一次只能启动一个程序示例代码 关键字: Qt、 unique、 单一、 QSharedMemory、 共享内存 摘要 今天接着在公司搞我的屎山代码,按照…
头图

Qt 利用共享内存实现一次只能启动一个程序

文章目录

  • Qt 利用共享内存实现一次只能启动一个程序
    • 摘要
    • 利用共享内存实现一次只能启动一个程序
    • 示例代码

关键字: Qtunique单一QSharedMemory共享内存

摘要

今天接着在公司搞我的屎山代码,按照投资方的要求,我需要给我的程序加一个系统自检检测的功能,但是呢,我的程序已经很烂了,一度想重构了他,所以这里我就暂时吧这个功能做成了一个进程,这样就可以独立运行,等后期重构的时候,直接拷贝过去。

因为不可抗力的因素,我的代码无法直接分享,但是咱可以写Demo来说明白。

利用共享内存实现一次只能启动一个程序

记得之前写过一般基于Socket的功能,但是我翻我之前的文章没有发现这个东西。就不放链接了,这里感兴趣的下伙伴可以自行摸索下。其实如果纯做win的下这个功能,可以直接调用win 的API,为了防止老板出啥幺蛾子,我这里就一劳永逸,直接用Qt的内用实现。

为了确保Qt程序有且只有一个实例在运行,使用QSharedMemory类来检查是否已经有一个实例在运行。QSharedMemory是Qt中用于进程间共享内存的类,利用它在不同的程序实例之间共享一个小段内存。如果一个程序启动时发现这段共享内存已经被创建,那么它可以安全地假定已经有另一个实例在运行,并可以据此决定退出或采取其他措施

示例代码

#include <QApplication>
#include <QSharedMemory>
#include <QMessageBox>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个唯一标识符QString uniqueId = "myUniqueAppId";// 创建共享内存QSharedMemory sharedMemory(uniqueId);// 尝试附加到共享内存,如果附加失败,说明没有实例在运行if (!sharedMemory.attach()) {// 尝试创建共享内存段,大小为1字节if (sharedMemory.create(1)) {// 创建成功,说明当前没有其他实例在运行// 在这里启动你的程序} else {// 创建共享内存失败,可能是权限问题等QMessageBox::critical(nullptr, QObject::tr("Error"),QObject::tr("Unable to create a single instance of the application."));return 1;}} else {// 能够附加到共享内存,说明已经有一个实例在运行QMessageBox::warning(nullptr, QObject::tr("Warning"),QObject::tr("An instance of the application is already running."));return 0; // 退出程序}// 你的程序主逻辑// ...return app.exec();
}

这段代码首先试图附加到一个名为myUniqueAppId的共享内存段。如果这一操作失败,它接着尝试创建这个共享内存段。如果创建成功,这表示当前没有其他程序的实例在运行,程序可以继续执行。如果附加成功,说明已经有一个实例在运行,此时可以显示一个错误消息并退出程序。

注意,这里的uniqueId需要是一个对于你的应用来说唯一的标识符。通常,你可以使用应用的ID、名称或者其他能够保证唯一性的字符串。


博客签名2021
http://www.hkea.cn/news/249920/

相关文章:

  • 绵阳住房和城市建设局网站官网seo排名优化联系13火星软件
  • 网站开发建设费用关键词异地排名查询
  • 网站建设企业电话广州优化疫情防控举措
  • 重庆模板网站建设百度网站域名注册
  • 安徽建设厅网站地址网络广告推广方式
  • 门户网站内容管理建设方案企业关键词优化推荐
  • 北京网站建设公司飞沐小学生一分钟新闻播报
  • 企业网站建设申请域名seo赚钱
  • 2017网站开发前景百度网盘资源链接入口
  • 平面广告设计主题seo是怎么优化上去
  • 正规网站制作公司哪家好四年级写一小段新闻
  • 济南网站建设安卓版快手seo
  • java开发兼职网站开发线上推广平台
  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文
  • 如何在百度做网站推广赚钱的软件
  • c# 网站开发教程周口网站seo
  • 湘西网站建设帮人推广注册app的平台
  • 切图做网站web制作网站的模板
  • 网站的做网站公司哪家好网络优化大师app
  • 国内外包网站今日头条(官方版本)
  • 外网建筑设计网站线上渠道推广有哪些方式
  • 厦门做网站公司排名电工培训机构
  • 武汉网站设计制作外包公司的人好跳槽吗
  • 网站建设哪里最好页面关键词优化