使用进程名禁止程序运行多次

Posted on 2019-01-26 10:09  努力成长静待花开  阅读(286)  评论(0编辑  收藏  举报

实现效果:

  

知识运用:
  Path类的GetFileNaemWithoutExtension方法    //
返回不具有拓展名的指定路径字符串的文件名

  public static string GetFileNameWithoutExtension (string path)

  process类的GetProcessByName方法  //创建新的Process组件的数组

  public static Process[] GetProcessesByName (string processName)

实现代码:

        private void Form1_Load(object sender, EventArgs e)
        {
            string str = Process.GetCurrentProcess().MainModule.ModuleName;                     //获取当前活动进程的模块名称
            Process[] pro = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(str));  //返回指定路径字符串的文件名
            if (pro.Length > 1)                                                                 //如果数组长度大于1 表明多次运行
            {
                MessageBox.Show("本程序仅允许运行一个实例!");
                this.Close();                                                                   //关闭当前窗体
            }
        }