C# Winform程序防止多开的方法总结(亲测)

一、Winform启动的时候,检测是否存在一样的进程名,防止程序多开;

 1     static class Program  2  {  3         /// <summary>
 4         /// 应用程序的主入口点。  5         /// </summary>
 6  [STAThread]  7         static void Main()  8  {  9             Process[] processes = Process.GetProcesses(); 10             Process currentProcess = Process.GetCurrentProcess(); 11             bool processExist = false; 12             foreach (Process p in processes) 13  { 14                 if (p.ProcessName == currentProcess.ProcessName && p.Id != currentProcess.Id) 15  { 16                     processExist = true; 17  } 18  } 19 
20             if (processExist) 21  { 22  Application.Exit(); 23  } 24             else
25  { 26  Application.EnableVisualStyles(); 27                 Application.SetCompatibleTextRenderingDefault(false); 28                 Application.Run(new Form1()); 29  } 30  } 31     }

 

 1     static class Program  2  {  3         /// <summary>
 4         /// 应用程序的主入口点。  5         /// </summary>
 6  [STAThread]  7         static void Main()  8  {  9             string processName = Process.GetCurrentProcess().ProcessName; 10             Process[] processes = Process.GetProcessesByName(processName); 11             //若是该数组长度大于1,说明屡次运行
12             if (processes.Length > 1) 13  { 14                 MessageBox.Show("程序已运行,不能再次打开!"); 15                 Environment.Exit(1); 16  } 17             else
18  { 19  Application.EnableVisualStyles(); 20                 Application.SetCompatibleTextRenderingDefault(false); 21                 Application.Run(new Form1()); 22  } 23  } 24     }

二、利用Mutex互斥对象防止程序多开;

 1     static class Program  2  {  3         /// <summary>
 4         /// 应用程序的主入口点。  5         /// </summary>
 6  [STAThread]  7         static void Main()  8  {  9             bool isAppRunning = false; 10             Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning); 11             if (!isAppRunning) 12  { 13                 MessageBox.Show("程序已运行,不能再次打开!"); 14                 Environment.Exit(1); 15  } 16  Application.EnableVisualStyles(); 17             Application.SetCompatibleTextRenderingDefault(false); 18             Application.Run(new Form1()); 19  } 20     }

—————————————————————————————————————————————————数组

相关文章
相关标签/搜索