【linux】【qt5】【qt程序防多开设置,通过设置共享内存实现,超短代码,超级有效】

前言:

  博主做了一个即时通讯的app,里面有个托盘事件https://www.cnblogs.com/13373-/p/11347934.html 

但是博主年纪大了老眼昏花容易看不到显示图标,就猝不及防的多开了一个(有时可能是好几个),挤过来挤过去的神烦。然后就诞生了这个防多开程序。网上捡的却十分好用。古来分享啊。

正文:

  代码就很简单了,直接写在main函数里面,如下:

#include "dialog.h"
#include <QApplication>
#include <QSharedMemory>
#include <QMessageBox>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QSharedMemory shared_memory;//事件对象
    shared_memory.setKey(QString("666666"));//设置一个ckKey
    if(shared_memory.attach())   //判断一下有没有程序启动
    {
        QMessageBox::information(NULL, "提示","程序已经打开!!","确定");//有程序在运行提醒 一下(不提醒也没关系哟)。
        return 0;
    }
    if(shared_memory.create(1)) //没有程序运行,打开程序。
    {
        Dialog w;
        w.show();
        return a.exec();
    }
    return 0;
}

后记:

  是不是很刺激啊,程序运行一次没事,运行第二次直接没反应。

  哈哈哈哈哈,如果有问题或者想法,欢迎评论提问哦。

原文地址:https://www.cnblogs.com/13373-/p/11491674.html