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


    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     }
  • 相关阅读:
    聊聊.net程序设计
    使用ftp自动下载上传文件
    Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(异步上传,下载等)实现汇总2
    一个的FTP类
    网站需要提高安全性
    极速理解设计模式系列【目录索引】
    NPOI 1.2教程
    Agile Tour 2011北京站“让敏捷落地”
    Asp.net程序中用NPOI生成标准Excel报表,导入导出一应俱全[转]
    网站性能优化之HTTP请求过程
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14277936.html
Copyright © 2020-2023  润新知