[VB6][WMI] Реестр - Как получить перечень параметров

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,102
Реакции
5,882
Баллы
648
VB.NET:
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001

Public oReg As Object

Private Sub Form_Load()
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    test
End Sub

Sub test()
    Dim sValues()
    Dim sTypes()
    Dim sKey        As String
    Dim lret        As Long
   
    sKey = "Environment"
   
    lret = oReg.EnumValues(HKEY_CURRENT_USER, sKey, sValues, sTypes)
   
    Stop
End Sub
В данном примере мы получаем перечень параметров
подраздела: HKCU\Environment

По достижении оператора Stop, в окне Locals (View -> Locals Windows (рус. - окно местных :)))
мы увидим 2 массива:

sValues - список параметров
sTypes - типы этих параметров

locals.png

Индексы массивов соответствуют друг другу.
К примеру,
sTypes(1) = 2
sValues(1) = "TMP"

Это значит, что параметр TMP имеет тип 2.
Далее смотрим расшифровку:

VB.NET:
Public Enum REG_TYPE
    REG_SZ = 1&
    REG_EXPAND_SZ = 2&
    REG_BINARY = 3&
    REG_DWORD = 4&
    REG_MULTI_SZ = 7&
End Enum
Тип 2 - это REG_EXPAND_SZ.
 
Сверху Снизу