判断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();
}
相关推荐
思麟呀12 小时前
C++11核心特性(二):constexpr
开发语言·c++
程序员二叉13 小时前
【Java】String 全套高频面试题详解
java·开发语言·面试
阿里嘎多学长13 小时前
2026-06-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管
字节高级特工13 小时前
C++11(三)终极指南:可变参数模板与包装器详解
java·开发语言·c++·后端
川冰ICE13 小时前
JavaScript高级④|类(class)与面向对象,ES6现代写法
开发语言·javascript·es6
Sirius Wu13 小时前
Agent模型冷启动问题
开发语言·javascript·人工智能·机器学习·ecmascript·aigc
吴阿福|一人公司13 小时前
类变量和实例变量的命名规范有哪些避坑点?
开发语言·python
Aaswk13 小时前
Java项目:文件批量处理工具
java·开发语言·vscode·idea
稷下元歌13 小时前
七天学会plc加机器视觉之AI 接入 外设模块开发全详细操作文档(全程配套视频按文档实操)
python·sql·qt·贪心算法·r语言·wpf·时序数据库
晚风吹红霞13 小时前
深入浅出 STL 之 map 与 set:从入门到实战
开发语言·c++