IntelliLock.Licensing.dll在VS中的16个使用方法

通过.NET库 "IntelliLock.Licensing.dll",你能够在运行时确定你的锁定软件的当前许可状态。你只需要在你的项目中引用这个库并访问相应的方法和属性。所有的方法和属性都应该是自我解释的。你不需要选择一个许可证文件。如果一个有效的许可证文件是可用的,它将被自动用来更新许可证状态。


 IntelliLock 是用于许可控制和应用程序的高级 100% 托管解决方案。.NET Reactor 提供基于本机代码保护的许可系统,而 IntelliLock 选择 100% 托管方式来应用许可和保护功能。这样就可以生成单个文件而无需其他文件。
请注意,"IntelliLock.Licensing.dll "的方法和属性只有在你保护你的软件后才会返回正确的值。在保护之后,"IntelliLock.Licensing.dll "库就不再需要了。
 

首先要引入程序集 using IntelliLock.Licensing;

1. 检查授权是否有效

    /*** Check if a valid license file is available. ***/
    public bool IsValidLicenseAvailable()
    {
        return (EvaluationMonitor.CurrentLicense.LicenseStatus == IntelliLock.Licensing.LicenseStatus.Licensed);
    }

2. 读取授权文件中的信息

    /*** Read additonal license information from a license file ***/
    public void ReadAdditonalLicenseInformation()
    {
        /* Check first if a valid license file is found */
        if (EvaluationMonitor.CurrentLicense.LicenseStatus == IntelliLock.Licensing.LicenseStatus.Licensed)
        {
            /* Read additional license information */
            for (int i = 0; i < EvaluationMonitor.CurrentLicense.LicenseInformation.Count; i++)
            {
                string key = EvaluationMonitor.CurrentLicense.LicenseInformation.GetKey(i).ToString();
                string value = EvaluationMonitor.CurrentLicense.LicenseInformation.GetByIndex(i).ToString();
            }
        }
    }

3. 检查过期锁状态

/*** Check the license status of the Expiration Days Lock ***/
    public void CheckExpirationDaysLock()
    {
        bool lock_enabled = EvaluationMonitor.CurrentLicense.ExpirationDays_Enabled;
        int days = EvaluationMonitor.CurrentLicense.ExpirationDays;
        int days_current = EvaluationMonitor.CurrentLicense.ExpirationDays_Current;
    }

4. 依然是检查过期锁状态

    /*** Check the license status of the Expiration Date Lock ***/
    public void CheckExpirationDateLock()
    {
        bool lock_enabled = EvaluationMonitor.CurrentLicense.ExpirationDate_Enabled;
        System.DateTime expiration_date = EvaluationMonitor.CurrentLicense.ExpirationDate;
    }
 

5. 检查执行锁状态

   /*** Check the license status of the Executions Lock ***/
    public void CheckExecutionsLock()
    {
        bool lock_enabled = EvaluationMonitor.CurrentLicense.Executions_Enabled;
        int max_executions = EvaluationMonitor.CurrentLicense.Executions;
        int current_executions = EvaluationMonitor.CurrentLicense.Executions_Current;
    }

6. 检查实例锁状态

   /*** Check the license status of the Instances Lock ***/
    public void CheckNumberOfInstancesLock()
    {
        bool lock_enabled = EvaluationMonitor.CurrentLicense.Instances_Enabled;
        int max_instances = EvaluationMonitor.CurrentLicense.Instances;
    }

7. 检查硬件锁状态

    /*** Check the license status of Hardware Lock ***/
    public void CheckHardwareLock()
    {
        bool lock_enabled = EvaluationMonitor.CurrentLicense.HardwareLock_Enabled;
 
        if (lock_enabled)
        {
            /* Get Hardware ID stored in the license file */
            string lic_hardware_id = EvaluationMonitor.CurrentLicense.HardwareID;
        }
    }

8. 获得硬件ID

    /*** Get Hardware ID of the current machine ***/
    public string GetHardwareID()
    {
        return HardwareID.GetHardwareID(true, true, false, true, true, false);
    }

9. 对比硬件锁

    /*** Compare current Hardware ID with Hardware ID stored in License File ***/
    public bool CompareHardwareID()
    {
        if (HardwareID.GetHardwareID(true, true, false, true, true, false) == EvaluationMonitor.CurrentLicense.HardwareID)
            return true;
        else
            return false;
    }

10. 作废授权

    /*** Invalidate the license. Please note, your protected software does not accept a license file anymore! ***/
    public void InvalidateLicense()
    {
        string confirmation_code = License_DeActivator.DeactivateLicense();
    }

11. 重新激活授权

 /*** Reactivate an invalidated license. ***/
    public bool ReactivateLicense(string reactivation_code)
    {
        return License_DeActivator.ReactivateLicense(reactivation_code);
    }

12. 使用文件名手动加载一个许可证

 /*** Load the license. ***/
    public void LoadLicense(string filename)
    {
        EvaluationMonitor.LoadLicense(filename);
    }

13. 使用byte[]加载许可证

    /*** Load the license. ***/
    public void LoadLicense(byte[] license)
    {
        EvaluationMonitor.LoadLicense(license);
    }

14.  获取加载的许可证(如果有的话),作为byte[] 。

 /*** Get the license. ***/
    public byte[] GetLicense()
    {
        return EvaluationMonitor.GetCurrentLicenseAsByteArray();   
    }

15. 异步检查许可证状态以防止启动延迟

/*** Check the license. ***/
    class Program
    {
        // To automatically check the license asynchronously the option "Asynchronous License Check" must be enabled in IntelliLock
        static void Main(string[] args)
        {
            IntelliLock.Licensing.EvaluationMonitor.LicenseCheckFinished += () =>
            {
                Console.WriteLine(IntelliLock.Licensing.HardwareID.GetHardwareID(false, true, false, true, true, false));
                Console.WriteLine(IntelliLock.Licensing.CurrentLicense.LicenseStatus.ToString());
            };
 
            Console.ReadLine();
        }
    }

或者这样写也可以

/*** Check the license. ***/
    class Program
    {
        // To automatically check the license asynchronously the option "Asynchronous License Check" must be enabled in IntelliLock
        static void Main(string[] args)
        {
            string licenseFile = @"C:\license.license";
           
           // To ensure SDK method calls doesn't block/delay the control flow the SDK method LoadLicense(...) should be run in asynchronous context (new Action()..) as well
            new Action(() =>
            {
                IntelliLock.Licensing.EvaluationMonitor.LoadLicense(File.ReadAllBytes(licenseFile));
                IntelliLock.Licensing.EvaluationMonitor.LicenseCheckFinished += () =>
                {
                    Console.WriteLine(IntelliLock.Licensing.HardwareID.GetHardwareID(false, true, false, true, true, false));
                    Console.WriteLine(IntelliLock.Licensing.CurrentLicense.LicenseStatus.ToString());
                };
            }).BeginInvoke(null, null);
 
            Console.WriteLine("Due to asynchronous control flow this line is displayed first");
            Console.ReadLine();       
    }

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 02:30:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 02:30:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 02:30:02       82 阅读
  4. Python语言-面向对象

    2024-04-26 02:30:02       91 阅读

热门阅读

  1. 【Python】模拟windows文件名排序

    2024-04-26 02:30:02       30 阅读
  2. 2024 泛娱乐企业出海音视频选型攻略

    2024-04-26 02:30:02       93 阅读
  3. Migrations

    2024-04-26 02:30:02       29 阅读
  4. CSS图像样式

    2024-04-26 02:30:02       34 阅读
  5. Spring Gateway的入门概述简介

    2024-04-26 02:30:02       134 阅读
  6. eureka---各个server的地址配置不全导致服务找不到

    2024-04-26 02:30:02       172 阅读
  7. 人工智能对软件测试的影响

    2024-04-26 02:30:02       32 阅读