zoukankan      html  css  js  c++  java
  • C# 禁止windows程序重复运行的两种基本方法

    一般的如果运行一个软件、让他处于运行状态,然后我们再去打开这个程序时就会提示我们
    “程序已启动或者不能重复启动此程序”,比如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 测试通过!

  • 相关阅读:
    【codecombat】 试玩全攻略 第九关 循环又循环
    【codecombat】 试玩全攻略 第十三关 已知敌人
    【codecombat】 试玩全攻略 第十一关 再次迷宫经历
    【codecombat】 试玩全攻略 第六关 cell commentary
    【codecombat】 试玩全攻略 第八关 火舞
    【codecombat】 试玩全攻略 第十二关 恐惧之门
    【codecombat】 试玩全攻略 第十四关 已知敌人
    苹果apns推送总结
    Xcode 提升速度小技巧
    UITextField 限制输入字数
  • 原文地址:https://www.cnblogs.com/panshengqiang/p/2864595.html
Copyright © 2011-2022 走看看