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

浙公网安备 33010602011771号