Я не могу получить значение из реестра - PullRequest
0 голосов
/ 01 ноября 2019

Я не могу получить значение из реестра «REG_RESOURCE_LIST» и «REG_FULL_RESOURCE_DESCRIPTOR» из реестра, используя функцию Registry.getvalue

Однако я не могу получить остальные типы данных (REG_BINARY,REG_MULTI_SZ и т. Д.).

Всегда возвращает «Ничего» для кода типа данных («REG_RESOURCE_LIST» & «REG_FULL_RESOURCE_DESCRIPTOR»)

   Dim value = regSubKey.GetValue(SettingName)

   'Regpath1 : HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System  
   'RegPath2 : HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP\PnP Manager\PnpManager

    For Each SettingName In regSubKey.GetValueNames
                Dim SettingType = regSubKey.GetValueKind(SettingName)
                Dim SettingValue As String = ""
                Dim type As String = ""

                If SettingType = RegistryValueKind.Binary Then
                    type = "REG_BINARY"
                    Dim value = regSubKey.GetValue(SettingName)
                    SettingValue = BitConverter.ToString(value)
                ElseIf SettingType = RegistryValueKind.MultiString Then
                    type = "REG_MULTI_SZ"
                    Dim Data As String() = regSubKey.GetValue(SettingName)
                    SettingValue = (String.Join(" ", Data))
                    SettingValue = SettingValue.Replace(",", " ")
                ElseIf SettingType = RegistryValueKind.None Then
                    type = "REG_NONE"
                    Dim value = regSubKey.GetValue(SettingName)
                    SettingValue = BitConverter.ToString(value)
                **ElseIf SettingType = RegistryValueKind.Unknown Then 'ERROR AREA
                     'REG_RESOURCE_LIST & REG_FULL_RESOURCE_DESCRIPTOR
                     type = "UNKNOWN TYPE"
                     SettingValue = "UNKNOWN DATA"
                     ' Dim value = regSubKey.GetValue(SettingName)
                     ' SettingValue = BitConverter.ToString(value)**
                Else
                    SettingValue = regSubKey.GetValue(SettingName).ToString

                    If SettingType = RegistryValueKind.ExpandString Then
                        SettingValue = SettingValue.Replace(",", " ")
                        type = "REG_EXPAND_SZ"
                    End If

                    If SettingType = RegistryValueKind.DWord Then
                        type = "REG_DWORD"
                    End If

                    If SettingType = RegistryValueKind.QWord Then
                        type = "REG_QWORD"
                        If SettingValue = "System.Byte[]" Then
                            SettingValue = " "
                        End If
                    End If

                    If SettingType = RegistryValueKind.String Then
                        SettingValue = SettingValue.Replace(",", " ")
                        type = "REG_SZ"
                    End If
                End If
                AddData(Path, SettingName, type, SettingValue)
            Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...