获取RegEdit中appname的所有部分

时间:2014-09-04 13:52:29

标签: c# .net vb.net settings regedit

关于.NET中的GetSetting()函数,我找到了GetAllSettings()。也就是说,GetAllSettings("MyApp", "MySection")会给我“MySection”下的所有键。我不能,为我的应用程序获取所有部分找到任何东西。在上面的例子中,我希望得到“MySection”作为搜索“MyApp”的结果。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

试试这个(C#):

var regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MyApp",
                    RegistryKeyPermissionCheck.ReadSubTree));
var sections = regKey.GetSubKeyNames();

我不确定VB,但您可能必须使用Registry.CurrentUser而不是LocalMachine,然后相应地修改路径(SOFTWARE\MyApp是此处的路径),基于你的钥匙在哪里。更多信息here

这里是VB.Net的相应代码 - 取自here

Dim rkTest As RegistryKey = Registry.CurrentUser.OpenSubKey("RegistryOpenSubKeyExample")
Console.WriteLine("There are {0} subkeys under Test9999.", _
    rkTest.SubKeyCount.ToString())
For Each subKeyName As String In rkTest.GetSubKeyNames()
    Dim tempKey As RegistryKey = _
        rkTest.OpenSubKey(subKeyName)
    Console.WriteLine(vbCrLf & "There are {0} values for " & _
        "{1}.", tempKey.ValueCount.ToString(), tempKey.Name)
    For Each valueName As String In tempKey.GetValueNames()
        Console.WriteLine("{0,-8}: {1}", valueName, _
            tempKey.GetValue(valueName).ToString())
    Next 
Next

此代码应该有效,只需确保正确设置路径等。或者,如果您可以发布注册表配置单元的屏幕截图,我可以更好地指导您。