判断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();
}
相关推荐
neter.asia几秒前
C# 窗体应用程序嵌套web网页,基于谷歌浏览器内核(含源码)
开发语言·c#
2301_8091774718 分钟前
sqoop,flume草稿
开发语言
潜意识起点33 分钟前
Java数组:静态初始化与动态初始化详解
java·开发语言·python
点云SLAM1 小时前
C++创建文件夹和文件夹下相关操作
开发语言·c++·算法
2301_809177471 小时前
2025.01.15python商业数据分析
开发语言·python
_小柏_1 小时前
C/C++基础知识复习(46)
c语言·开发语言·c++
SomeB1oody1 小时前
【Rust自学】6.4. 简单的控制流-if let
开发语言·前端·rust
明月逐人归4641 小时前
输出语句及变量定义
开发语言·python
tatasix2 小时前
Go Redis实现排行榜
开发语言·redis·golang
梦起丶2 小时前
Qt 中实现系统主题感知
qt·ui·工具·qml