• C#执行程序禁用重复打开功能


    第一种方式:

    在网上查到一种方法,通过获取电脑任务管理器内当前执行程序是否存在,从而判断当前执行程序是否运行,并在第二次重复打开时报警提示已经运行,这种方式,个人觉得不怎么好用。代码如下:

            //加载窗体时判断当前程序是否已经打开
            private void Test_Load(object sender, EventArgs e)
            {
                System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("执行程序名称");//获取指定的进程名
                
                if (myProcesses.Length > 1) //如果可以获取到知道的进程名则说明已经启动
                {
                    MessageBox.Show("程序已启动!");
    
                    Application.Exit();//关闭系统
                }
            }

    第二种方式:

    在 Program.cs文件中增加代码,判断是否已经启动,代码如下:

     //static class Program
        //{
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            //[STAThread]
            //static void Main()
            //{
                bool isRuned;
    
                System.Threading.Mutex mutex = new System.Threading.Mutex(true, "OnlyRunOneInstance", out isRuned);
    
                if (isRuned)
                {
                    //Application.EnableVisualStyles();
                    //Application.SetCompatibleTextRenderingDefault(false);
                   // Application.Run(new Test());
                    mutex.ReleaseMutex();
                }
                else
                {
                    MessageBox.Show("程序已启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

    其中改为标注的都是原本自带的部分,未标注的是增加部分,重复打开后结果如下图:

  • 相关阅读:
    Visual Studio2019安装步骤
    写在第一页的话
    数状数组
    hdu 3501 数学题
    静态邻接表
    最长子序列
    hdu 1094 所想到的
    bellman_ford
    郁闷的一晚
    SPFA + 静态邻接表 模板
  • 原文地址:https://www.cnblogs.com/LcVong/p/12457038.html
Copyright © 2020-2023  润新知