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);
                }
            }
        }
    }

  • 相关阅读:
    [Outlook] Outlook2013能收但无法发送邮件-0x800CCC13, 0x800CCC0B, 0x8004210B
    [Mobile] 手机浏览器输入框-数字输入框
    [Qcon] 百姓网开发总结
    [QCon] Scrum阅读随想
    [Spring] 事务级别定义
    [Monitor] 监控规则定义
    [Spring Batch] 图解Spring Batch原理
    [JavaCore] 微信手机浏览器版本判断
    Python 编码简单说
    矩阵或多维数组两种常用实现方法
  • 原文地址:https://www.cnblogs.com/littleCode/p/3848182.html
Copyright © 2011-2022 走看看