我在VB.Net中创建了一个30天试用期的程序。该程序在注册表中节省了首次启动该程序的时间,并且最后使用了该时间。由此我计算试验是否仍然有效。
问题是,非管理员用户可以访问的注册表中唯一的位置是HKEY_LOCAL_USER键。我需要为所有用户实施试用版,否则用户只需使用新帐户即可重置试用版。
在哪里可以保存此信息,以便没有管理员权限的用户可以从该位置读取和写入?我还想将它保存在普通用户无法轻易找到的地方,并删除会重置试用版的文件。
由于
答案 0 :(得分:1)
我不确定是否有人为此找到了明确的答案。唯一的方法是与您一起存储数据而不是客户端 - 因此在安装时和每次启动时都要进行Web调用,并将数据存储在服务器上。
除非你有一个特别严重的问题,否则非常OTT。
除此之外,加密并保存安装目录中文件的信息。加密它应确保无法更改该值,如果该文件不存在,则不允许访问。
但这一切都取决于试用期的重要性。
答案 1 :(得分:1)
将所需数据保存为二进制文件(DateTime.Now.Ticks
为System.Int64
;))并使用冗余数据对其进行充气并生成校验和字段。在加载时检查校验和字段,如果错误 - 数据已被篡改,因此终止试用期。您还可以将数据保存在应用程序旁边的文件中,以避免使用注册表(用于跨平台兼容性和避免所需的管理员权限)
HKEY_LOCAL_MACHINE适用于所有用户,但安装应用的用户必须具有管理员权限。
答案 2 :(得分:0)
我的问题实际上是保存所有用户都可以访问(读写)的数据的位置。
在Win 7中,这可能会变得棘手。我在代码项目中找到了this文章,解释了如何实现文件夹。
然后我读了一个文件并按照Kenny上面的建议在注册表中保存值。
如果某人有更好的方法,请分享。