我想在注册表中存储一些应用程序信息,我不知道应该在哪里存储它。我希望信息适用于所有用户,因此我不会使用HKEY_CURRENT_USER。也许HKEY_LOCAL_MACHINE然后我不知道在哪里。我不知道有什么标准和Environment.SpecialFolder
这样的标准,但对于注册表路径或文件夹来说会更安全,更优雅。
答案 0 :(得分:7)
检查Microsoft.Win32.Registry对象。在那里,您可以找到一些表示常见注册表路径的对象,例如:
例如,如果您想访问HKEY_CURRENT_USER:
Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names");
key.SetValue("Name", "Isabella");
key.Close();
答案 1 :(得分:5)
否 - 与文件系统不同,不需要这样的方法,因为注册表在某些地方有一些标准化的位置。
您应该按照以下格式将数据存储在密钥中:
HKEY_HIVE\SOFTWARE\Publisher\Program
例如:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
如果您需要数据是整个机器的全局数据,请将您的内容放在HKEY_LOCAL_MACHINE
内,但请注意,写入此位置将需要管理权限,除非您修改密钥上的DACL以使其行为不同(在某些情况下)安装者的形式或类似的东西)。
如果您要存储每个用户数据(提示 - 大多数数据是每个用户),那么您应该将内容放在HKEY_CURRENT_USER
中,这样做的好处就是没有特殊权利该用户需要访问其配置单元(默认情况下)。