判断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();
}
相关推荐
cici1587415 小时前
MATLAB/Simulink单相光伏并网逆变器仿真
开发语言·matlab
Dev7z15 小时前
基于MATLAB小波分析的图像增强算法及其仿真实现
开发语言·matlab
开始了码15 小时前
qt配置文件::INI介绍
qt
代码游侠15 小时前
学习笔记——栈
开发语言·数据结构·笔记·学习·算法
编程修仙15 小时前
第七篇 java的注解以及使用反射实现自定义注解功能
xml·java·开发语言·spring
GesLuck15 小时前
Beaglebone BB Black C版 AM3358(一)
c语言·开发语言·物联网·硬件架构
lusasky15 小时前
Java内存堆栈AI分析工具全览
java·开发语言
CoderYanger15 小时前
C.滑动窗口-越长越合法/求最短/最小——2904. 最短且字典序最小的美丽子字符串
java·开发语言·数据结构·算法·leetcode·1024程序员节
lijiatu1008615 小时前
[C++] QTimer与Qt事件循环机制 实验探究
c++·qt
QQ_43766431415 小时前
常见题目及答案
android·java·开发语言