zoukankan      html  css  js  c++  java
  • 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     }

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

  • 相关阅读:
    android和ios系统框架
    iOS分类和扩展(Categories和Extensions)
    iOS并发编程
    认识View Controller
    JVM(Java虚拟机)
    iOS Apps核心对象
    Memory Management in Cocoa Program
    Block和GCD介绍
    iOS 系统框架分层结构
    ReLearn C(The C Programming Language.2Nd)
  • 原文地址:https://www.cnblogs.com/willingtolove/p/11008804.html
Copyright © 2011-2022 走看看