在C#中查找注册表项

我正在开发一个项目,允许我从Windows 7 PC中删除注册表项。 具体来说,我正在尝试创建一个程序,允许我通过ProfileList键从机器中删除配置文件。 我的问题是无论我尝试什么,在我开始随机删除内容之前,似乎无法正确读取我想要做的密钥。 我的代码是

RegistryKey OurKey = Registry.LocalMachine; OurKey = OurKey.OpenSubKey(@"SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList", true); foreach (string Keyname in OurKey.GetSubKeyNames()) { MessageBox.Show(Keyname); } 

此代码运行但不返回任何内容(No MessageBox)。 任何想法为什么不呢?

编辑:

我得到了顶级密钥加载,感谢你们所有,但它只显示文件夹/密钥名称(例如:S-1-5-21-3794573037-2687555854-1483818651-11661)我需要的是阅读下面的密钥该文件夹可以查看ProfilePath是什么。 有没有更好的方法去做?

正如Lloyd所指出的,你的路径应该使用“Windows NT”。 如有疑问,请始终使用regedit手动检查注册表。

编辑:要进行编辑,您可以在找到的键上使用GetValue ,以下代码应该可以执行您要查找的内容:

 RegistryKey OurKey = Registry.LocalMachine; OurKey = OurKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList", true); foreach (string Keyname in OurKey.GetSubKeyNames()) { RegistryKey key = OurKey.OpenSubKey(Keyname); MessageBox.Show(key.GetValue("KEY_NAME").ToString()); // Replace KEY_NAME with what you're looking for } 

Windows NT

请不要错过空间