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

Jua*_*uan 4 .net c# registry

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

Dan*_*lba 7

检查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();
Run Code Online (Sandbox Code Playgroud)


Bil*_*eal 5

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

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

HKEY_HIVE\SOFTWARE\Publisher\Program

例如:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

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

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