判断QT程序是否重复运行

打开exe,再次打开进行提示。

main.cpp添加:

复制代码
#include "QtFilePreview.h"
#include <QtWidgets/QApplication>
#include <windows.h>
#include <qmessagebox.h>
#pragma execution_character_set("utf-8")


bool CheckRun()
{
    //  创建互斥量
    HANDLE m_hMutex = CreateMutex(NULL, FALSE, L"onlyone");
    //  检查错误代码
    if (GetLastError() == ERROR_ALREADY_EXISTS) {
        //  如果已有互斥量存在则释放句柄并复位互斥量
        CloseHandle(m_hMutex);
        m_hMutex = NULL;
        //  程序退出
        return  false;
    }
    else
        return true;
}


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    if (CheckRun() == false)
    {
        QMessageBox::information(nullptr,"tips","this program has already been run\n程序已经运行");
        return 0;
    }
    QtFilePreview w;
    w.show();
    return a.exec();
}
相关推荐
clock的时钟6 分钟前
c++面向对象第4天---拷贝构造函数与深复制
开发语言·c++
t1987512813 分钟前
Java连接Redis和基础操作命令
java·开发语言·redis
秋名RG15 分钟前
深入理解享元模式:用Java实现高效对象共享
java·开发语言·享元模式
蜗牛的旷野28 分钟前
华为OD机试_2025 B卷_小华地图寻宝(Python,100分)(附详细解题思路)
开发语言·python·华为od
勤奋的小王同学~31 分钟前
(javaSE)Java数组进阶:数组初始化 数组访问 数组中的jvm 空指针异常
开发语言·python
一刀到底2111 小时前
java 微服务中,微服务相互调用 feign 和flux 如何选择
java·开发语言·微服务
秋风&萧瑟1 小时前
【C++】类的构造函数
开发语言·c++
青春:一叶知秋1 小时前
【Qt开发】对话框
开发语言·qt
你挚爱的强哥2 小时前
【pdf】自定义组件:预览指定地址的PDF文件
开发语言·前端·javascript
大白同学4212 小时前
【C++】多态
开发语言·c++