C# 获取RegEdit中appname的所有部分

C# 获取RegEdit中appname的所有部分,c#,.net,vb.net,settings,regedit,C#,.net,Vb.net,Settings,Regedit,关于.NET中的GetSetting()函数,我找到了GetAllSettings()。也就是说,GetAllSettings(“MyApp”、“MySection”)将为我提供“MySection”下的所有键。然而,我找不到任何东西来获取我的应用程序的所有部分。在上面的例子中,我希望得到“MySection”作为搜索“MyApp”的结果 有什么想法吗?试试这个(C#): 我不确定VB,但您可能必须使用Registry.CurrentUser而不是LocalMachine,然后根据您的键的位置相

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

有什么想法吗?

试试这个(C#):

我不确定VB,但您可能必须使用
Registry.CurrentUser
而不是
LocalMachine
,然后根据您的键的位置相应地修改路径(
SOFTWARE\MyApp
是此处的路径)。更多信息

下面是VB.Net的相应代码-摘自


这段代码应该可以工作,只是要确保你的路径等设置正确。或者,如果您可以发布注册表配置单元的屏幕截图,我可以更好地指导您。

Dim regKey as RegistryKey=registry.LocalMachine/CurrentUser.OpenSubkey(…在运行后为Nothing,在GetSubkeyNames()上中断)因为它不是对象的实例。你只需要VB的答案吗?那么你应该去掉C标记。关于你的另一个问题,我会检查MSDN上VB.Net的相应代码示例。不,不,对不起,VB不是必需的。但我正在使用它,这就是我粘贴它的原因。:)好的。我粘贴了VB代码以供参考。查看我的更新答案。很高兴它有帮助。如果有帮助,别忘了投票!
var regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MyApp",
                    RegistryKeyPermissionCheck.ReadSubTree));
var sections = regKey.GetSubKeyNames();
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