在 C# 中查找注册表项



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

     RegistryKey OurKey = Registry.LocalMachine;
            OurKey = OurKey.OpenSubKey(@"SOFTWAREMicrosoftWindowsNTCurrentVersionProfileList", true);
            foreach (string Keyname in OurKey.GetSubKeyNames())
            {
                MessageBox.Show(Keyname);
            } 

此代码运行,但不返回任何内容(无消息框)。任何想法为什么不呢?

编辑:

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

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

编辑

:为了进行编辑,您只需GetValue找到的键,以下代码应该可以执行您要查找的操作:

RegistryKey OurKey = Registry.LocalMachine;
OurKey = OurKey.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersionProfileList", 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

请不要错过空间

最新更新