首页 > 编程语言 >C# WINFORM判断程序已经运行,切只能运行一个实例

C# WINFORM判断程序已经运行,切只能运行一个实例

时间:2024-02-12 13:44:41浏览次数:28  
标签:Process C# Application 实例 bool canCreateNew 运行 WINFORM

判断程序是否已经运行,使程序只能运行一个实例:

方法1:

//这种检测进程的名的方法,并不绝对有效。因为打开第一个实例后,将运行文件改名后,还是可以运行第二个实例.

    private static bool isAlreadyRunning()
    {
        bool b = false;
        Process[] mProcs = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
        if (mProcs.Length > 1) {
            b = true;
        }
        return b;
    }

方法2:

//线程互斥

    static void Main()
    {
        bool canCreateNew;
        Mutex m = new Mutex(true, "DRM", out canCreateNew);
        if (canCreateNew)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new DRM());
            m.ReleaseMutex();
        }
        else {
            MessageBox.Show("程序已经运行!");
        }

    }

标签:Process,C#,Application,实例,bool,canCreateNew,运行,WINFORM
From: https://www.cnblogs.com/chobittsu/p/18013851

相关文章

  • 【C++】假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。
    题目:假设链表中每一个节点的值都在0-9之间,那么链表整体就可以代表一个整数。给定两个这种链表,请生成代表两个整数相加值的结果链表。数据范围:0≤n,m≤1000000,链表任意值0≤val≤9要求:空间复杂度O(n),时间复杂度O(n)例如:链表1为9->3->7,链表2为6->3,最后生成新的结果链表......
  • 成功实现FaceTime语音,FaceTime视频,FaceTime数据筛选,检测手机号是否开通FaceTime的
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署苹......
  • 世界无线电通信大会 world radiocommunication conference
      国际电信联盟(InternationalTelecommunicationUnion,ITU),简称电联,是联合国负责电信事物的专门机构,系政府间国际组织。成立于1865年5月17日,现有193个成员国,700多个部门成员,总部设立在瑞士日内瓦。ITU使用六种正式语言,即中、法、英、西、俄、阿拉伯文。ITU是联合国的15个专......
  • 1.微服务注册中心Consul
     Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。Consul是分布式的、高可用的、可横向扩展的用于实现分布式系统的服务发现与配置。中文网:Consul中文文档-Consul中文文档(gitb......
  • 数据库归档工具 pt-archiver 的使用
    简介pt-archiver属于大名鼎鼎的percona工具集的一员,是归档MySQL大表数据的最佳轻量级工具之一。安装官网下载地址,选择PerconaToolkit版本和操作系统平台,具体如下图解压缩,所有工具都在bin目录下使用注意:pt-archiver操作的表必须有主键/root/test_archiver/pt-3......
  • JOISC 2018 题解
    JOISC2018loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1简单题。根据颜色段均摊的结论,每个点到根的路径上颜色段的总和是\(O(n\logn)\)的,于是直接每次暴力找颜色段即可。复杂度\(O(n\log^2n)\)。提交记录D1T2又是计算几何。我们需要画出一条闭合折线,并且......
  • Vite+Vue根据环境配置Websocket地址
    前言上回说到,利用vite加载不同mode下的配置文件,可以实现不同运行环境下的参数配置。在前端应用中经常使用到Websocket,其地址同样可以在.env中间中配置。代码vite.config.ts代码的执行是在createApp之前,不可以在vite.config.ts中使用例如pinia、router等组件。可以使用import.me......
  • VSCode的configuration错误
    问题首先通过报错语句,定位到错误代码。通过上图的报错语句,定位到了我的错误代码在train.py文件中parser.add_argument方法的问题,截图如下:  通过百度parser.add_argument语句,发现当required参数为True时,在运行时必须要为该命令指定路径。从上图可以看到第一条parser.add_ar......
  • JOISC 2017 题解
    JOISC2017loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1开场放大。首先,对于一个点,它最后覆盖的一定是一个矩形,这就意味着如果我们知道了\(u,d,l,r\)操作各用了多少次,他们之间的顺序是不重要的,我们可以直接当做把一种操作做完再做剩下的操作,这样就可以做到\(O(......
  • .NET(C#)遍历(for,foreach,while)字典(Dictionary)的几种方法
    ​ .NET(C#)中,Dictionary<TKey,TValue>是一种非常实用的集合类型,用于存储键值对的集合。遍历Dictionary的方法有多种,包括使用for循环、foreach循环和while循环。使用foreach循环是遍历Dictionary中所有键值对最常见和最简单的方法。for和while循环在遍历Dic......