在哪里存储节目注册信息

时间:2011-07-06 13:35:21

标签: .net registry

我在VB.Net中创建了一个30天试用期的程序。该程序在注册表中节省了首次启动该程序的时间,并且最后使用了该时间。由此我计算试验是否仍然有效。

问题是,非管理员用户可以访问的注册表中唯一的位置是HKEY_LOCAL_USER键。我需要为所有用户实施试用版,否则用户只需使用新帐户即可重置试用版。

在哪里可以保存此信息,以便没有管理员权限的用户可以从该位置读取和写入?我还想将它保存在普通用户无法轻易找到的地方,并删除会重置试用版的文件。

由于

3 个答案:

答案 0 :(得分:1)

我不确定是否有人为此找到了明确的答案。唯一的方法是与您一起存储数据而不是客户端 - 因此在安装时和每次启动时都要进行Web调用,并将数据存储在服务器上。

除非你有一个特别严重的问题,否则非常OTT。

除此之外,加密并保存安装目录中文件的信息。加密它应确保无法更改该值,如果该文件不存在,则不允许访问。

但这一切都取决于试用期的重要性。

答案 1 :(得分:1)

将所需数据保存为二进制文件(DateTime.Now.TicksSystem.Int64;))并使用冗余数据对其进行充气并生成校验和字段。在加载时检查校验和字段,如果错误 - 数据已被篡改,因此终止试用期。您还可以将数据保存在应用程序旁边的文件中,以避免使用注册表(用于跨平台兼容性和避免所需的管理员权限)

HKEY_LOCAL_MACHINE适用于所有用户,但安装应用的用户必须具有管理员权限。

答案 2 :(得分:0)

我的问题实际上是保存所有用户都可以访问(读写)的数据的位置。

在Win 7中,这可能会变得棘手。我在代码项目中找到了this文章,解释了如何实现文件夹。

然后我读了一个文件并按照Kenny上面的建议在注册表中保存值。

如果某人有更好的方法,请分享。