对于我的 VB.NET 应用程序,我希望用户免费试用x天。
记录过去天数的最佳位置在哪里?在注册表中?有人不能只是删除注册表项,然后再次拥有完整的x天吗?
有没有更好的方法?
存储在用户计算机上的任何内容都可能受到损害。
如果你认真对待这件事,那么你的"最佳"选择是拥有一个Web服务,你的应用程序在每次启动时调用它传递某种形式的标识字符串。
(这也可能会受到损害)。
为了生成标识字符串,您可以查看此问题和以下答案
在本地计算机上存储某些内容并不重要,因为它始终可以删除。
用户可以启动虚拟电脑安装你的应用,然后在 28 天后回滚虚拟电脑并重新安装。
一种选择是生成计算机唯一的密钥,然后使用 Web 服务进行验证。这不是完全黑客证明,但它更好。
您可以向随应用试用版一起保存的任何文件添加一些信息,这些信息对于该特定版本的应用是唯一的(可能是安装时的时间戳)。
当应用的试用版尝试打开文件时,它将检查此签名并确保它是使用相同的实例创建的,否则拒绝打开该文件。
这实质上阉割了简单地重新安装应用程序并继续使用它的能力。