判断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();
}
相关推荐
郝学胜_神的一滴13 小时前
Qt 高级开发 027: QTabWidget自定义样式表美化实战
c++·qt
程序员皮皮林14 小时前
Dubbo 的 SPI 和 JDK 的 SPI 有什么区别?
java·开发语言·dubbo
是多巴胺不是尼古丁14 小时前
java‘期末复习--多态
java·开发语言
abcy07121314 小时前
sqlalchemy 原生sql判断条件是否为空,为空则跳过
开发语言·python
.千余14 小时前
【C++】深挖STL list底层:解迭代器与节点存储逻辑
开发语言·c++·笔记·学习·其他
淡水瑜14 小时前
C# 实操
开发语言·c#
雪落漂泊14 小时前
C++ 继承与多态(上)
开发语言·c++
skywalk816314 小时前
我想基于kotti-py312 ,制作一个多中文编程语言的宣传网站,主要包括文档、playground 示例和学习 (Codearts制作)
开发语言·学习·编程
聆风吟º14 小时前
【C++11新章】列表初始化详解
开发语言·c++·列表初始化
闪电悠米14 小时前
黑马点评-秒杀优化-04_lua_and_db_fallback
服务器·开发语言·网络·数据库·缓存·junit·lua