繁体   English   中英

有什么像Environment.SpecialFolder但是对于注册表路径

[英]Is there anything like Environment.SpecialFolder but for registry paths

我想在注册表中存储一些应用程序信息,我不知道我应该在哪里存储它。 我希望信息适用于所有用户,因此我不会使用HKEY_CURRENT_USER。 也许HKEY_LOCAL_MACHINE然后我不知道在哪里。 我不知道这个的标准是什么,比如Environment.SpecialFolder但对于注册表路径或文件夹来说会更安全,更优雅。

检查Microsoft.Win32.Registry对象。 在那里,您可以找到一些表示常见注册表路径的对象,例如:

  • 当前用户
  • LOCALMACHINE
  • ClassesRoot
  • 用户
  • 性能数据
  • CurrentConfig
  • DynData

例如,如果要访问HKEY_CURRENT_USER:

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names");
key.SetValue("Name", "Isabella");
key.Close();

不 - 与文件系统不同,不需要这样的方法,因为注册表有一些标准化的位置。

您应该按照以下格式将数据存储在密钥中:

HKEY_HIVE\\SOFTWARE\\Publisher\\Program

例如:

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows

如果您需要数据是整个机器的全局数据,请将您的内容放在HKEY_LOCAL_MACHINE ,但请注意,写入此位置将需要管理权限,除非您修改密钥上的DACL以使其行为不同(在某种形式的安装程序或类似的情况下) )。

如果您要存储每个用户数据( 提示 - 大多数数据是每个用户),那么您应该将东西放在HKEY_CURRENT_USER ,这样做的好处是该用户无需访问其配置单元的特殊权限(默认情况下)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM