• C#防止程序多次运行


    经过我的测试,还比较好用,但是有个问题,如果不注销,用另一个用户进入,则程序不能判断出已运行。所以只限于用在单用户环境,还是不太完美。

    class Program
        {
            [STAThread]
            static void Main(string[] args)
            {
                //防止程序多次运行
                if (!OneInstance.IsFirst("MyTest"))
                {
                    Console.WriteLine("警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!");
                    return;
                }
                Console.WriteLine("正在运行中");
                Console.ReadLine();
            }
        }
        public static class OneInstance
        {
            ///<summary>
            ///判断程序是否正在运行 
            ///</summary>
            ///<param name="appId">程序名称</param>
            ///<returns>如果程序是第一次运行返回True,否则返回False</returns>
            public static bool IsFirst(string appId)
            {
                bool ret = false;
                if (OpenMutex(0x1F0001, 0, appId) == IntPtr.Zero)
                {
                    CreateMutex(IntPtr.Zero, 0, appId);
                    ret = true;
                }
                return ret;
            }
            [DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
            private static extern IntPtr OpenMutex(
                uint dwDesiredAccess, // access 
                int bInheritHandle,    // inheritance option 
                string lpName          // object name 
                );
            [DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
            private static extern IntPtr CreateMutex(
                IntPtr lpMutexAttributes, // SD 
                int bInitialOwner,                       // initial owner 
                string lpName                            // object name 
                );
        }

    出处:http://blog.csdn.net/lanman/article/details/3648455

  • 相关阅读:
    AT5200 [AGC038C] LCMs 莫比乌斯反演
    P5445 [APIO2019]路灯 树套树
    CF617E XOR and Favorite Number 莫队
    P5404 [CTS2019]重复 KMP自动机
    P4364 [九省联考2018]IIIDX 线段树上二分
    P3749 [六省联考2017]寿司餐厅 最大权闭合子图
    CF906E Reverses PAM+border
    AGC 补题记录
    做题记录
    题解 loj #3524. 「IOI2021」钥匙
  • 原文地址:https://www.cnblogs.com/mq0036/p/4138461.html
Copyright © 2020-2023  润新知