C#中禁止程序多开

原文:C#中禁止程序多开

方法一、使用Mutex

            bool createdNew; //返回是否赋予了使用线程的互斥体初始所属权
            System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew); //同步基元变量
            if (createdNew) //赋予了线程初始所属权,也就是首次使用互斥体
            {
                Application.Run(new Form1()); /s/这句是系统自动写的
                instance.ReleaseMutex();
            }
            else
            {
                MessageBox.Show("已经启动了一个程序,请先退出!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
                Application.Exit();
            }

方法二、Process

测试函数:

private bool AppAlreadyRunning()
{
    System.Diagnostics.Process curProcess = System.Diagnostics.Process.GetCurrentProcess();
    System.Diagnostics.Process[] allProcess = System.Diagnostics.Process.GetProcesses();
    foreach (System.Diagnostics.Process process in allProcess)
    {
        if (process.Id != curProcess.Id)
        {
                if (process.ProcessName == curProcess.ProcessName)
                        return true;
          }
    }
    return false;
}

应用程序中直接判断:

 System.Diagnostics.Process[] pros = 
                System.Diagnostics.Process.GetProcessesByName(
                 System.Diagnostics.Process.GetCurrentProcess().ProcessName);
            if (pros.Length > 1)
              {
                    Application.Exit();
                    return;
                }

时间: 2024-11-03 05:58:03

C#中禁止程序多开的相关文章

bin debug-使用installshield limited 制作安装包 安装后 程序中图片打不开

问题描述 使用installshield limited 制作安装包 安装后 程序中图片打不开 程序中图片都放在了bin/debug中,因为以前没用过installshield limited 打包,结果这些图片没能放进安装包中,请问应怎样将bin/debug中的图片一起打进安装包中,谢谢啦!

eclipse中java 程序打不开

问题描述 eclipse中java 程序打不开 java 环境变量配好了 eclipse也装好了,但是新建的项目不能打开 有错误提示 请各位帮帮忙解决一下

asp.net中禁止页面缓存程序代码

方法一:导航时用服务器端的Response.Redirect方法,或者用前端得window.location.replace方法. 方法二:禁用ASP.NET页面缓存. 在必要的时候我还是推荐方法二的.因为我们做开发的不能控制浏览器的设置.用户如果把IE设置为从不检查更新缓存的问题则不好避免,所以还是用方法二,让IE的临时文件夹不存在页面文件. 另外,是否禁用页面缓存要根据实际情况来说,起初我认为页面缓存只是缓存在服务器,后来看了一篇blog 发现缓存的意义还是很大的.在很多情况下可以大大减小服

360安全卫士怎么禁止程序访问网络

  360安全卫士怎么禁止程序访问网络          安装完360安全卫士后,打开360安全卫士的主界面,相信大家很了解这个界面吧. 在主界面的右下方,找到更所的选项,如图中箭头所指的方向. 这里弹出的新窗口里就有能够禁止网路模块,流量防火墙. 点击流量防火墙后,在管理网速的一栏中看到所有的联网程序. 那么如何给程序断网呢,大家看到图中箭头中所指的小扳手的图标,大家右键点击. 点击后弹出新菜单里有禁止程序访问网络,选择这个选项即可断开程序的网络连接. 看一下效果,是不是如图中所指的已经禁止连

设置win7组策略禁止程序运行的方法

  或许很多人不知道windows系统下的组策略是干什么用的,其实组策略在系统中扮演着非常重要的角色,用户通过组策略可自定义控制用户.计算机.操作系统运行行为,简单的说,通过该功能可自定义控制win7系统下的指定程序不被其它人访问,这里小编为win7系统组策略为例,为大家带来禁止运行指定程序的方法! 操作步骤: 1.按下"win+R"组合键,呼出运行,在框内输入"gpedit.msc"按下回车键,打开本地组策略编辑器; 2.在"本地策略编辑器"窗

如何在ghost win7系统中禁止桌面显示图标?

  当然,在咱们的ghost win7系统下载中,系统自带的就有一些程序和软件,例如咱们新装的电脑中,就有一些自带的程序软件,如IE浏览器.如计算机.回收站等等,当然,之后大家也可以将自己比较常用到的软件安装到系统中,而对于一些常用的软件,则需要将快捷方式安装到桌面上,也就是咱们日常看到的ghost win7系统桌面上的图标,那么咱们的这些图标就一定要显示在ghost win7系统的桌面上吗?咱们是否有办法可以禁止桌面显示图标呢?下面,就让小编来介绍一下,如何在ghost win7系统中禁止桌面

在win7系统中运行程序提示应用程序或dll为无效的windows

  咱们日常在操作Windows系统的时候,总是离不开要运行程序.例如咱们经常需要使用到的一些工具,什么杀毒软件,什么QQ聊天软件,什么IE浏览器,什么360软件等等,这些其实都是咱们Windows系统中的程序,所以在Windows系统中运行程序,是每次操作电脑都无法避免的.但是最近,却有使用w764旗舰版系统下载电脑的用户咨询说,自己在使用win7旗舰版系统运行程序时,收到了"应用程序或dll为无效的windows映像"的提示,那么遇到这样的情况,咱们要如何解决呢?下面,小编就来详细

组策略禁止程序运行的方法

  开始菜单,在运行框中输入"gpedit.msc",选择"用户配置"-"系统",如下图: 在右侧双击"不要运行指定的 Windows 应用程序",打开属性页,点击"已启用",如下图: 点击"显示-",如下图.然后再点击"添加",输入要禁用的程序名称(主运行程序名称),例如notepad.exe,如下图所示.然后点一直点确定,完成设置. 然后,再打开Notepad.e

任务栏图标的响应和程序的开闭问题

问题描述 任务栏图标的响应和程序的开闭问题 任务栏上给每个程序添加一个图标,用左键打开对应的程序,右键隐藏对应的程序,怎么实现? 解决方案 用enumwindows api函数http://blog.163.com/blue_oceans/blog/static/2674216020072267189200/ 解决方案二: 楼主要求的功能正是操作系统,本身自带的功能. 解决方案三: 打开win7任务栏设置窗口 进入WINDOWS7后系统会自动显示任务栏,而此时的任务栏将使用系统默认设置. 有的时