如何使用Microsoft.Win32.Registry.OpenSubKey直接转到特定的密钥

本文关键字:密钥 Microsoft 何使用 Win32 Registry OpenSubKey | 更新日期: 2023-09-27 18:06:01

这是一个简单的问题。应在MSDN中清楚地记录。我找了,但没找到。我得到的唯一的东西是我必须打开一个又一个的子密钥才能得到我感兴趣的特定密钥。

肯定有一个更直接的方法来访问关键的3层深。这是什么?

我已经试过了

RegistryKey reg = Registry.LocalMachine;
reg.OpenSubKey(@"Software'Microsoft", true);  // reg is still HKLM !

reg.OpenSubKey(@"Software'Microsoft'", true); // reg is still HKLM !

如何使用Microsoft.Win32.Registry.OpenSubKey直接转到特定的密钥

我认为您期望OpenSubKey()方法对reg做一些事情-以某种方式使其指向子键。事情不是这样的。OpenSubKey()返回一个RegistryKey类型的新对象,它可以用来检索或修改子键的值。所以你需要:

RegistryKey reg = Registry.LocalMachine;
RegistryKey subKey = reg.OpenSubKey(@"Software'Microsoft", true);  

OpenSubKey返回一个新的RegistryKey对象:

reg = reg.OpenSubKey(@"Software'Microsoft", true); // Will work or
var sub = reg.OpenSubKey(@"Software'Microsoft", true);

当然,只需输入该键的完整路径,例如:

Registry.CurrentUser.OpenSubKey("the registry full path");