C#如何遍历注册表?

Tom*_*Tom 8 c#

嘿,如何使用c#迭代注册表?我希望创建一个表示每个键的属性的结构.

Chr*_*isF 9

我认为你需要的是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);
Run Code Online (Sandbox Code Playgroud)

(注意:这是从教程http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/复制的原始版本,但该网站现在似乎已关闭).


Ice*_*ind 0

查看RegistryKey.GetSubKeyNames方法。

此函数将检索所有子项的名称,您可以迭代它们并执行您想要的任何操作。