C#如何遍历注册表?

C#如何遍历注册表?,c#,C#,嘿,如何使用c#遍历注册表?我希望创建一个结构来表示每个键的属性。请从MSDN中查看此函数: 此函数将检索所有子键的名称,您可以迭代这些子键并执行任何操作。您可以使用Microsoft.Win32.RegistryKey和GetSubKeyNames方法,如下所述: 请注意,如果您在注册表的很大一部分进行迭代,这可能会非常慢。我认为您需要的是GetSubKeyNames(),如本例所示 private void GetSubKeys(RegistryKey SubKey) { for

嘿,如何使用c#遍历注册表?我希望创建一个结构来表示每个键的属性。

请从MSDN中查看此函数:


此函数将检索所有子键的名称,您可以迭代这些子键并执行任何操作。

您可以使用
Microsoft.Win32.RegistryKey
GetSubKeyNames
方法,如下所述:


请注意,如果您在注册表的很大一部分进行迭代,这可能会非常慢。

我认为您需要的是
GetSubKeyNames()
,如本例所示

private void GetSubKeys(RegistryKey SubKey)
{
    foreach(string sub in SubKey.GetSubKeyNames())
    {
      MessageBox.Show(sub);
      RegistryKey local = Registry.Users;
      local = SubKey.OpenSubKey(sub,true);
      GetSubKeys(local); // By recalling itself it makes sure it get all the subkey names
    }
}

//This is how we call the recursive function GetSubKeys
RegistryKey OurKey = Registry.Users;
OurKey = OurKey.OpenSubKey(@".DEFAULT\test",true);
GetSubKeys(OurKey);
(注意:这是从教程中复制的原始内容,但网站现在似乎已关闭)


这将破坏Mono在Windows以外的其他系统上的任何可移植性。只是一个警告。谢谢克里斯!我正要写一个草书函数,但我不熟悉它的方法!非常感谢。
private void  GetSubKeys(RegistryKey SubKey)
{
    foreach(string sub in SubKey.GetSubKeyNames())
    {
      MessageBox.Show(sub);
      RegistryKey local = Registry.Users;
      local = SubKey.OpenSubKey(sub,true);
      GetSubKeys(local); // By recalling itselfit makes sure it get all the subkey names
    }
}
//This is how we call the recursive function GetSubKeys
RegistryKey OurKey = Registry.Users;
OurKey = OurKey.OpenSubKey(@".DEFAULT\test",true);
GetSubKeys(OurKey);