zoukankan      html  css  js  c++  java
  • 保证应用程序只有一个实例运行

            public static System.Diagnostics.Process RunningInstance()
            {
                System.Diagnostics.Process current = System.Diagnostics.Process.GetCurrentProcess();
                System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName(current.ProcessName);
                //查找相同名称的进程
                foreach (System.Diagnostics.Process process in processes)
                {
                    //忽略当前进程
                    if (process.Id != current.Id)
                    {
                        //确认相同进程的程序运行位置是否一样.
                        if (System.Reflection.Assembly.GetExecutingAssembly().Location.Replace("/", "\") == current.MainModule.FileName)
                        {
                            //Return the other process instance.
                            return process;
                        }
                    }
                }
                //No other instance was found, return null.
                return null;
            }

    在main中调用

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                System.Diagnostics.Process instance = RunningInstance();
                if (instance == null)
                {
                    Application.Run(new Form1());
                }
                else
                {
                    MessageBox.Show("已有程序打开");
                }

     示例二

            public static bool ExistOtherOne()
            {
                Process process = Process.GetCurrentProcess();
                Process[] processes = System.Diagnostics.Process.GetProcessesByName(process.ProcessName);
                if (processes.Length > 1)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    本博客有部分内容来自网络,如有问题请联系:hebeilijianghua@qq.com,并注明来自博客园。
  • 相关阅读:
    C# 常用函数和方法集
    CSS选择器、优先级和匹配原理
    都是王安石惹的祸?
    世界上的一类
    历史之不可理喻片段
    历史惊人的相似
    20世纪鲜为人知的军事巨灾
    unity制作简单血条
    Unity中Instantiate物体失效问题
    Unity3D实现DoubleClick的一种方法
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/9328256.html
Copyright © 2011-2022 走看看