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

C#实现应用程序单个运行,防止重复启动

    在开发Windows应用程序时,有时我们希望确保同一时间只有一个实例在运行,防止重复启动。

    可以通过检查当前进程的名称来判断是否已经有实例在运行。如果检测到同名的进程已经存在,则提示用户并关闭新启动的实例。

代码实现:
#region 单次运行软件

System.Diagnostics.Process gwr = System.Diagnostics.Process.GetCurrentProcess();
System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("Demo");
if (myProcesses.Length > 1) // 如果可以获取到指定的进程名大于一个,则说明在此之前已经启动过
{
    MessageBox.Show("检测到程序已经运行,请先关闭多余的程序和进程!");
    Application.Exit();    // 关闭
}

#endregion
  • System.Diagnostics.Process.GetCurrentProcess(): 获取当前进程的实例。

  • System.Diagnostics.Process.GetProcessesByName("Demo"): 获取所有名为“OpenDoor”的进程。这里的“Demo”应替换为你的应用程序的实际名称。

  • myProcesses.Length > 1: 如果找到的进程数量大于1,说明已经有实例在运行。

  • Application.Exit(): 关闭当前实例,确保只有一个实例在运行。


http://www.kler.cn/a/576225.html

相关文章:

  • 算法随打:拼写单词
  • oracle通过dmp导入数据
  • 【JAVA架构师成长之路】【Redis】第17集:Redis热点Key问题分析与解决方案
  • 【CSS】Tailwind CSS 与传统 CSS:设计理念与使用场景对比
  • .NET高级应用---自定义Ioc容器(附带源码)
  • Qt6.8.2创建WebAssmebly项目使用FFmpeg资源
  • 论文阅读《TrustRAG: An Information Assistant with Retrieval AugmentedGeneration》
  • K8S学习之基础十四:k8s中Deployment控制器概述
  • 【五.LangChain技术与应用】【31.LangChain ReAct Agent:反应式智能代理的实现】
  • 从开源大模型工具Ollama存在安全隐患思考企业级大模型应用如何严守安全红线
  • Process-based Self-Rewarding Language Models 论文简介
  • React基础之组件
  • 开发环境搭建-完善登录功能
  • 系统架构评估方法-SAAM方法
  • C++20的简写函数模板
  • 初次使用 IDE 搭配 Lombok 注解的配置
  • Android APP 启动流程详解(含冷启动、热启动)
  • html流程图
  • RabbitTemplate类介绍、应用场景和示例代码
  • 在使用 router-link 进行路由跳转时,A页面跳转到A页面,资源要重新加载吗