• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
智美手机APP
国内最专业的智能手机APP应用解决方案提供商。智美手机APP为您提供成熟稳定的专业化产品、产品定制等服务。
博客园    首页    新随笔    联系   管理    订阅  订阅

判断本机只能运行一个winform程序

在我们做winform程序时,有时需要对程序运行做一个限制,就比如像一般程序在运行时,就不允许再运行第二个同样的程序。这个功能其实不管对于系统,还是对于程序的安全性而言都是比较重要的。

那么,如何实现这个功能啦?我们都知道,在winform中,也有像bs模式中一样的全局文件:Program.cs,这个文件定义了程序的进入点。代码如下:

        //判断当前线程是否只有一个

            Process currprocess = Process.GetCurrentProcess();

            string processName = currprocess.ProcessName;

            Process[] proces = Process.GetProcessesByName(processName);

            if (proces.Length > 1)
            {
                foreach (Process item in proces)
                {
                    if (item.ProcessName == processName) //说明线程名称一样
                    {
                        if (item.Id != currprocess.Id) //线程名称一样,但是线程id不一样
                        {
                            MessageBox.Show("已经有一个程序在运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);

                            currprocess.Kill();

                            return;
                        }
                    }
                }
            }

好了,在运行程序时,在运行一下,这是就会发现不能启动同样的程序,效果实现。

posted @ 2012-08-31 11:02  小敏博客园  阅读(303)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3