判断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();
}
相关推荐
2301_821700533 分钟前
模板代码生成工具
开发语言·c++·算法
xieliyu.3 分钟前
Java :类和对象(一)
java·开发语言
阿蒙Amon7 分钟前
C#常用类库-详解Polly
开发语言·c#
宵时待雨9 分钟前
C++笔记归纳12:二叉搜索树
开发语言·数据结构·c++·笔记·算法
炎爆的土豆翔10 分钟前
SIMD常见操作,结合样例一文理解
开发语言·c++·算法
Geoking.20 分钟前
【新手向】go语言最新下载及安装配置教程
开发语言·后端·golang
游戏开发爱好者824 分钟前
如何使用Instruments和Keymob进行Swift应用性能优化分析
开发语言·ios·性能优化·小程序·uni-app·iphone·swift
小温冲冲24 分钟前
ReSharper 在 Visual Studio 中的详细配置指南
c++·ide·qt·visual studio
6+h24 分钟前
【java IO】字节流详解
java·开发语言·python
Mem0rin25 分钟前
[Java面向对象]接口的声明和实现继承
java·开发语言