WinLicens具有和Themida同级别的保护功能以及授权管理功能。软件功能强大,使用灵活,开发者可以安全地发布软件的试用版和完全版。
博主整理的WinLicens问题集主要是在使用WinLicens过程中关于“注册”的相关问题。
Q:我想在我需要付款的软件中添加“add-in(加载项)”或“plug-in(插件)”。WinLicense是否支持该功能?
A:如果你想为每个插件使用单独的许可证,那么你只需为你保护的每个插件添加一个不同的“Registration Unique Key”(在软件面板中)。你可以在“Registration(注册)”面板中为每个插件选择预期的许可证名称。 你还可以使用相同的许可证注册所有插件,并使用“Custom Data(自定义数据)”字段指定支持的插件。你可以在“Custom Data”字段中输入任何文本(最多8000个字符),并通过“WLRegGetLicenseInfo”在运行时读取。
例如,自定义数据字段可以包含受支持的插件名称列表,在运行时,你可以调用WLRegGetLicenseInfo并解析“Custom Data”数组以加载所需的插件。 使用受保护的插件时,我们建议对于你保护的每个插件,启用“Protect as DLL plugin”选项(在“高级选项”面板中)以提高应用程序的性能。
Q:我在使用自己的外部密钥生成器创建许可证作为EXE文件。但是我的密钥生成器(.EXE)需要依赖WinLicenseSDK.dll才能工作。有没有办法不依赖WinLicenseSDK.dll?
A:密钥生成代码在WinLicenseSDK.dll中实现,这就是为什么你需要让WinlicenseSDK.dll和你的密钥生成器一起工作。
密钥生成器功能与WinLicense提供的试用/注册API不同。一旦应用程序受到保护,试用/注册API就不需要WinLicenseSDK.dll,因为WinLicense将这些API重新定向到其内部保护代码来实现工作, 因此,你可以将受保护的应用程序交付给客户,不需要发送WinLicenseSDK.dll。
如果你不想依赖WinLicenseSDK.dll,可能是因为你想使用其他公司的产品为受保护的应用程序生成许可证,我们有一个C ANSI源代码生成器,可以生成受保护应用程序的许可证。 当然,C ANSI代码不依赖WinLicenseSDK.dll,你可以将其编译为在任何平台下工作。此C ANSI代码可供客户获取。
Q:我创建了一个有效期的许可证。如果我的用户让应用程序持续运行了几个月,甚至到了试用期之后,会发生什么?
A:1)请转到“Customized Dialog”面板,然后单击“MsgID26:License Date Expired”,并检查是否已选择“Will be displayed by WinLicense”。
2)如果你已选中“Will be displayed by WinLicense”,WinLicense将在该日期停止应用程序的执行。
3)如果对于MsgID26,你已选中“Displayed by SDK or not displayed”,即使许可证到期,WinLicense也会继续正常运行你的应用程序。你必须定期调用SDK(WLRegGetStatus)来了解许可证是否已过期,以便你可以在过期时采取适当的措施。
Q:我的许可证被锁定在U3 USB pendrive上。我的应用程序启动后如何知道用户是否拔出U3 USB?
A:你可以使用WLHardwareRuntimeCheckU3函数来检查U3 USB是否已插入。请注意,使用此函数可能需要一分钟才能知道U3是否已拔出。所以,如果检查显示U3 USB已插入,你还是应该定期检查一下(调用WLHardwareRuntimeCheckU3)。