提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:何跃|2021-08-31 10:48:42.510|阅读 242 次
概述:通过.NET库 "IntelliLock.Licensing.dll",你能够在运行时确定你的锁定软件的当前许可状态。你只需要在你的项目中引用这个库并访问相应的方法和属性。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
首先要引入程序集 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@cahobeh.cn
本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
在本文中,我们将向您展示如何逐步执行此操作,告诉您什么是 SCORM,为什么需要使用它,并列出我们测试过的最佳 SCORM 转换工具之一——iSpring Suite。
本文主要介绍如何使用Kendo UI for Angular组件的ListView来构建带有图表的仪表板,欢迎下载新版控件体验!
在本文中,您将学习如何使用Spire.PDF for .NET在 C# 中向 PDF 文档添加页码。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢