• 保证应用程序只有一个实例运行


            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,并注明来自博客园。
  • 相关阅读:
    MySql msi安装
    C# TextBox文本内容选中
    SQL 删除时间最靠前的几条数据
    Layui表格工具栏绑定事件失效问题
    Layui我提交表单时,table.reload(),表格会请求2次,是为什么?按下面的做
    table 中数据行循环滚动
    html 3D反转效果
    网页电子表数字样式
    power tool 强制撤销
    GHOST -ntexact 正常还原
  • 原文地址:https://www.cnblogs.com/leebokeyuan/p/9328256.html
Copyright © 2020-2023  润新知