当前位置: 首页 > news >正文

QT无弹窗运行和只允许运行一个exe

        最近做一个小功能,需要后台运行QT程序,无弹窗,并且只允许一个exe运行,不关闭程序,无法2次启动。

main.cpp

#include "deleteshotcurveflie.h"
#include <QApplication>
#include <QSharedMemory>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    DeleteShotCurveFlie w;
    // 创建一个QSharedMemory对象来检查是否已经存在实例
    QSharedMemory sharedMemory("UniqueApplicationName");
    // 尝试附加到共享内存段
    if (!sharedMemory.attach())
    {
        // 如果无法附加,说明这是第一个实例
        sharedMemory.create(1); // 创建一个1字节的共享内存段

        // 创建并显示主窗口

        w.show();
        w.hide();
        // 开始事件循环
        int ret = a.exec();

        // 程序退出时释放共享内存
        sharedMemory.detach();

        return ret;
    }
    else
    {
        // 如果已经附加到共享内存,说明已经有实例在运行
        QMessageBox::information(nullptr, "程序运行中", "该程序已经在运行中,不能打开第二个窗口。");
        w.raise();
        return 0;
    }

}

deleteshotcurveflie.cpp

#include "deleteshotcurveflie.h"
#include <QFileSystemWatcher>
#include <QDir>
#include <QDebug>

DeleteShotCurveFlie::DeleteShotCurveFlie(QWidget *parent)
    : QWidget(parent)
{
    this->setMaximumSize(1,1);//设置为最小
    this->setWindowFlags(Qt::FramelessWindowHint);//窗口无边框化
}

相关文章:

  • 问卷数据分析|SPSS实操之独立样本T检验
  • Reached heap limit Allocation failed - JavaScript heap out of memory
  • git 记录
  • 用大模型学大模型03-数学基础 概率论 条件概率 全概率公式 贝叶斯定理
  • 9种慢慢被淘汰的编程语言...
  • 【Prometheus】prometheus黑盒监控balckbox全面解析与应用实战
  • easyexcel快速使用
  • H5接入支付宝手机网站支付并实现
  • 百度宣布:免费!
  • Oracle EBS Update SYSTEM Password - 11i R12
  • PostgreSQL 数据类型
  • uniapp canvas 生成海报并保存到相册
  • 【MySQL — 数据库基础】深入解析 MySQL 的联合查询
  • jenkins war Windows安装
  • (萌新入门)如何从起步阶段开始学习STM32 ——2 我应该学习HAL库还是寄存器库?
  • DeepSeek 模型部署与使用技术评测(基于阿里云零门槛解决方案)
  • 创建一个新的 React Native 项目
  • Unity Muse AIGC工具
  • docker部署单机版doris,完整无坑
  • 网络变压器的主要电性参数与测试方法(1)
  • 体坛联播|曼联热刺会师欧联杯决赛,多哈世乒赛首日赛程出炉
  • 上海楼市“银四”兑现:新房市场高端改善领跑,二手房量价企稳回升
  • 中信银行:拟出资100亿元全资设立信银金融资产投资有限公司
  • 巴基斯坦信德省卡拉奇发生爆炸
  • 阿曼宣布美国与胡塞武装达成停火协议
  • 溢价率19.48%,民企番禺置业3.07亿元竞得广州番禺融媒体中心北侧地块