【问题标题】:Get all sections for appname in RegEdit在 RegEdit 中获取 appname 的所有部分
【发布时间】:2014-10-29 07:24:19
【问题描述】:

关于.NET 中的GetSetting() 函数,我找到了GetAllSettings()。也就是说,GetAllSettings("MyApp", "MySection") 会给我“MySection”下的所有键。但是,我无法找到任何东西来获取我的应用程序的所有部分。在上述情况下,我想获得“MySection”作为搜索“MyApp”的结果。

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    试试这个(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
    

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

    【讨论】:

    • Dim regKey as RegistryKey = Registry.LocalMachine/CurrentUser.OpenSubkey(... is Nothing 运行后它在 GetSubkeyNames() 上中断,因为它不是对象的实例。
    • 您只需要VB中的答案吗?然后,您应该删除 C# 标记。关于您的其他问题,我会在 MSDN 上为 VB.Net 检查相应的代码示例。
    • 不不抱歉,VB 不是必需的。但我正在使用它,这就是我粘贴它的原因。 :)
    • 好的。无论如何,我粘贴了 VB 代码以供参考。请参阅我的更新答案。
    • 很高兴它有帮助。如果有帮助别忘了点赞!
    猜你喜欢
    • 2010-12-27
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多