应用程序的授权验证以及防止重复打开

License授权加密功能实现

不希望客户免费无限制地使用开发的应用程序。希望应用程序验证当前客户端对应的License是否有效,如果有效再打开应用程序。

实现方法

思路:在程序主窗口打开前让程序首先去验证对应的License文件。
image

  1. 首先使用加密工具在项目的运行目录下生成对应的License文件。
    image

2.在项目中引用第三方Dll(License.Library.dll)。使用其提供的LicenceHelper.ValidLicense()。验证当前Dll文件,根据返回值判断验证是否通过。

应用防止重复打开

不希望应用程序能被打开多个,影响正常的处理逻辑。
主要有下面两种思路

  1. 应用程序打开后,就直接去读一个文件给它加一把写锁,应用程序关闭时再去释放。如果期间有其他程序打开,由于写锁的存在没法正常写文件,说明程序重复打开。
  2. 使用互斥体Mutex,程序每次打开都去请求同一个互斥体,显然,只有第一个打开的程序能够收到其响应。
点击查看代码
class Program
{
    // 第一个程序
    const string name = "aaaa";
    private static Mutex m;
    static void Main(string[] args)
    {
        // 本程序是否是 Mutex 的拥有者
        bool firstInstance;
        m = new Mutex(false,name,out firstInstance);
        if (!firstInstance)
        {
            Console.WriteLine("程序已在运行!按下回车键退出!");
            Console.ReadKey();
            return;
        }
        Console.WriteLine("程序已经启动");
        Console.WriteLine("按下回车键退出运行");
        Console.ReadKey();
        m.ReleaseMutex();
        m.Close();
        return;
    }
}
posted @ 2025-07-18 20:22  Ytytyty  阅读(31)  评论(0)    收藏  举报