首页 > Windows开发 > 详细

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

时间:2019-06-12 12:36:13      阅读:212      评论:0      收藏:0      [点我收藏+]

1、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     }

2、利用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     }

—————————————————————————————————————————————————

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

原文:https://www.cnblogs.com/willingtolove/p/11008804.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!