判断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();
}
相关推荐
窗边鸟几秒前
小白日记之二维数组(java学习)
java·开发语言·学习
报错小能手几秒前
线程池学习(五) 单线程池(SingleThreadPool)
开发语言
缺点内向1 分钟前
报表自动化进阶:Java精确操控Excel打印页边距的实战方法
java·开发语言·后端·自动化·excel
凌晨一点的秃头猪7 分钟前
KERAG_R详细分析:
开发语言
2301_797312267 分钟前
学习Java36天
java·开发语言·学习
studytosky7 分钟前
Linux系统编程:深度解析 Linux 进程,切换调度、环境变量与虚拟内存
linux·运维·服务器·开发语言·网络·c++
2501_941807268 分钟前
从微服务监控到智能运维的互联网工程语法实践与多语言探索
开发语言·python
ID_180079054739 分钟前
京东商品评论API接口:技术架构与数据抓取原理
开发语言
Hello.Reader10 分钟前
PyFlink Table API 用纯 Python 写一个 WordCount(读 CSV + 聚合 + 写出)
开发语言·python
zfj32110 分钟前
java BIO、NIO、AIO用法样例
java·开发语言·nio·bio·aio