博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 禁止windows程序重复运行的两种基本方法
阅读量:6817 次
发布时间:2019-06-26

本文共 1483 字,大约阅读时间需要 4 分钟。

一般的如果运行一个软件、让他处于运行状态,然后我们再去打开这个程序时就会提示我们

“程序已启动或者不能重复启动此程序”,比如QQ对战平台 ,就限制一台机子启动两个QQ对
战平台,那么他在C#中是如何实现的呢?

一般有两种方法,我是用的是第一种

方法1:

在项目的第一个窗体的启动事件中 如form1_load() 中添加如下语句

=================================这是什么分割线====================================

     #region 判断系统是否已启动

     System.Diagnostics.Process[] myProcesses = System.Diagnostics.Process.GetProcessesByName("这里是你的程序进程名");//获取指定的进程名  

            if (myProcesses.Length > 1) //如果可以获取到知道的进程名则说明已经启动
            {
                MessageBox.Show("程序已启动!");
                Application.Exit();              //关闭系统
            }          

    #endregion

===================================================================================
       好了 这样就可以达到防止用户第二次启动此程序的目的了
       当然你也可以把它编辑成一个类 或生成一个dll文件 调用它。

方法2.

在项目的启动引导文件 Program.cs中加入判断语句

====================================这是什么分割线===============================

using System.Linq;

       using System.Windows.Forms;

namespace XiaoZhiSoft

{
    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 Form1());
                mutex.ReleaseMutex();
            }
            else
            {
                MessageBox.Show("程序已启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}

=============================================================================

在C#中这两出代码都可以实现防止程序重复运行的目的,在vs2005 vs2008 测试通过!

转载于:https://www.cnblogs.com/panshengqiang/archive/2013/01/17/2864595.html

你可能感兴趣的文章
Android 获得View宽高的几种方式
查看>>
iOS正则表达式
查看>>
关于javascript的this指向问题
查看>>
Promise的理解和用法
查看>>
java B2B2C Springboot电子商城系统-高可用的服务注册中心
查看>>
Dubbo的总体架构
查看>>
Spring Cloud微服务架构代码结构详细讲解
查看>>
以太经典硬分叉:矿工欢喜、投资者欢庆、社区高兴的“三赢”之举
查看>>
我的友情链接
查看>>
LVS启(禁)用成员
查看>>
innobackupex 备份报错
查看>>
2016 IT 运维工作计划及学习
查看>>
将一个数的二进制位模式从左到右翻转并输出
查看>>
jQuery学习之jQuery Ajax用法详解
查看>>
关于JEPLUS软件介绍——JEPLUS软件快速开发平台
查看>>
动态增加UIView到当前视图中
查看>>
怎么能看透信封
查看>>
css正方形照片墙
查看>>
找工作的程序员必懂的Linux
查看>>
shell脚本实现杨辉三角形
查看>>