c# - 在 C# 中查找注册表项

标签 c# registrykey

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

     RegistryKey OurKey = Registry.LocalMachine;
            OurKey = OurKey.OpenSubKey(@"SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList", true);

            foreach (string Keyname in OurKey.GetSubKeyNames())
            {
                MessageBox.Show(Keyname);
            } 

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

编辑:

感谢大家,我得到了要加载的顶级 key ,但它只显示文件夹/ key 名称(例如: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
} 

关于c# - 在 C# 中查找注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417955/

相关文章:

windows - KEY_WOW64_32KEY 和 KEY_WOW64_64KEY

javascript - Microsoft Bot Framework - Bot 不允许发送消息

c# - 这是从队列中更新和返回 SQL 中的一行的 'thread-safe' 方法吗?

c# - .deploy 文件未部署 XML 文件

c# - 如何在 WPF 中获取与桌面相关的鼠标位置?

c - 如何使用C从注册表中读取存储在Key中的值

c# - 如何使用 RegistryKey.SetValue

iis - MaxWebConfigFileSizeInKB 和 IIS 10

c# - 如何在按钮单击时模拟按键 - Unity