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