彩票走势图

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

原创|使用教程|编辑:何跃|2021-08-31 10:48:42.510|阅读 242 次

概述:通过.NET库 "IntelliLock.Licensing.dll",你能够在运行时确定你的锁定软件的当前许可状态。你只需要在你的项目中引用这个库并访问相应的方法和属性。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

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



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP