C# 只允许应用程序打开一次的实现方法

第一种实现方法:

 首先需要引用名称控件:using System.Diagnostics;

也可以把计数变量放在配置文件当中,方便以后的修改,下面是具体实现代码:

 1             Process[] processes = Process.GetProcesses();     //获得本机所有应用进程
 2             int currentCount = 0;                              //记录程序打开次数
 3             foreach (Process item in processes)                //循环本机所有应用进程名字
 4             {
 5                 if (item.ProcessName == Process.GetCurrentProcess().ProcessName) //判断进程名字和本程序进程名字是否一致
 6                 {
 7                     currentCount += 1;                               
 8                 }
 9             }
10             if (currentCount >1)     //本程序进程大于2就退出
11             {
12                 Application.Exit();
13                 return;
14             }

 

第二种实现方法:

该代码写在Program类(程序入口)里面,利用Mutex互斥来实现

       bool cretrNew;
            using (System.Threading.Mutex mutex = new System.Threading.Mutex(true,Application.ProductName,out cretrNew))
            {
                if (cretrNew)
                {
                        Application.Run(new Form());
                }
                else
                {
                    MessageBox.Show("程序已经打开!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    Application.Exit();
                }
            }

 

posted @ 2021-09-06 18:59  元数据  阅读(1198)  评论(0)    收藏  举报