判断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();
}
相关推荐
rosmis12 小时前
agent各指标定义
android·java·开发语言
mifengxing13 小时前
Java 集合进阶(一)
java·开发语言·数据结构·复习笔记
爱码小白13 小时前
importlib模块
开发语言·前端·python
techdashen14 小时前
Go设计取舍之四: map不变时能否并发修改不同value
开发语言·后端·golang
小小小米粒14 小时前
阿姆达尔定律(Amdahl‘s Law)
java·开发语言
知彼解己14 小时前
Java 版本演进
java·开发语言·spring boot
风样滴男人哟14 小时前
PHP特性之反射类ReflectionClass机制
android·开发语言·php
看昭奚恤哭14 小时前
Flutter 布局核心思想
开发语言·javascript·flutter
IsSh9nj6q15 小时前
Python全栈应用搭建神器magic-dash .新版本介绍
开发语言·python·dash
Cachel wood15 小时前
hands-on-modern-rl:动手学强化学习策略梯度reinforce
开发语言·python