判断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();
}
相关推荐
wjs20242 分钟前
Ruby File 类和方法
开发语言
xyq20245 分钟前
API 类别 - UI 核心
开发语言
米优12 分钟前
qt+vlc实现国标客户端测试工具
qt·gb28181·vlc
Dxy123931021618 分钟前
Python路径算法简介
开发语言·python·算法
文慧的科技江湖20 分钟前
光储充协同的终极闭环:用SpringCloud微服务打造“发-储-充-用“智能能源网络 - 慧知开源充电桩管理平台
java·开发语言·spring cloud·微服务·能源·充电桩开源平台·慧知重卡开源充电桩平台
東雪木24 分钟前
Java学习——内部类(成员内部类、静态内部类、局部内部类、匿名内部类)的用法与底层实现
java·开发语言·学习·java面试
昵称暂无125 分钟前
通过 C# 复制 Word 文档、指定段落、指定节
开发语言·c#·word
满满和米兜28 分钟前
【Java基础】-I/O-字符流
java·开发语言·python
JQLvopkk30 分钟前
C#实现的简单的漏洞扫描器
开发语言·c#
小小仙。31 分钟前
IT自学第三十八天
java·开发语言