7

我正在开发一个允许我从 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);
            } 

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

编辑:

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

4

2 回答 2

11

正如 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
} 
于 2012-11-16T13:58:56.590 回答
1

Windows NT

请不要错过空间

于 2012-11-16T14:02:12.057 回答