判断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();
}
相关推荐
沐知全栈开发8 分钟前
XML 验证器
开发语言
自学互联网31 分钟前
使用Python构建钢铁行业生产监控系统:从理论到实践
开发语言·python
合作小小程序员小小店32 分钟前
桌面开发,在线%医院管理%系统,基于vs2022,c#,winform,sql server数据
开发语言·数据库·sql·microsoft·c#
一点★38 分钟前
“equals”与“==”、“hashCode”的区别和使用场景
java·开发语言
十一.36643 分钟前
79-82 call和apply,arguments,Date对象,Math
开发语言·前端·javascript
合作小小程序员小小店1 小时前
桌面开发,下午茶甜品管理系统开发,基于C#,winform,sql server数据库
开发语言·数据库·sql·microsoft·c#
_OP_CHEN1 小时前
从零开始的Qt开发指南:(七)Qt常用控件之按钮类控件深度解析:从 QPushButton 到单选 / 复选的实战指南
qt·前端开发·qradiobutton·qpushbutton·qcheckbox·qt常用控件·gui界面开发
葡萄成熟时 !1 小时前
黑马学生管理系统
java·开发语言
秋邱1 小时前
高等教育 AI 智能体的 “导学诊践” 闭环
开发语言·网络·数据库·人工智能·python·docker
j***63082 小时前
MacOS升级ruby版本
开发语言·macos·ruby