判断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();
}

相关推荐

  1. Android判断应用是否在前台运行

    2024-06-16 07:22:04       33 阅读
  2. Qt判断linux是否存在网卡

    2024-06-16 07:22:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 07:22:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 07:22:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 07:22:04       82 阅读
  4. Python语言-面向对象

    2024-06-16 07:22:04       91 阅读

热门阅读

  1. 双指针【1】两数之和基础版 归并排序

    2024-06-16 07:22:04       29 阅读
  2. mybatis框架原理,组件,案例,优化,优缺点总结

    2024-06-16 07:22:04       31 阅读
  3. TPS、QPS、CPS、PV和UV

    2024-06-16 07:22:04       49 阅读
  4. 如何用蒙版制作玻璃划动效果

    2024-06-16 07:22:04       32 阅读
  5. Python知识点总结

    2024-06-16 07:22:04       37 阅读
  6. Redis

    Redis

    2024-06-16 07:22:04      35 阅读
  7. 数据结构之B树

    2024-06-16 07:22:04       31 阅读
  8. 华为Atlas 300I 推理卡显卡安装

    2024-06-16 07:22:04       28 阅读
  9. 数据分析的流程是啥样?

    2024-06-16 07:22:04       31 阅读
  10. RAG下的prompt编写探索

    2024-06-16 07:22:04       30 阅读
  11. merkle tree中文

    2024-06-16 07:22:04       34 阅读
  12. 网络数据库后端框架相关面试题(其四)

    2024-06-16 07:22:04       30 阅读
  13. k8s pv使用nfs挂载券需要授权

    2024-06-16 07:22:04       32 阅读