Функция RegEnumValue

Declare Function RegEnumValue Lib "advapi32" Alias "RegEnumValueA" ( _
        ByVal hkey As Long,  _
        ByVal dwIndex As Long,  _
        ByVal lpValueName As String,  _
        lpcbValueName As Long,  _
        lpReserved As Long,  _
        lpType As Long,  _
        lpData As Byte,  _
        lpcbData As Long) As Long

RegEnumValue перебирает все значения параметров заданного раздела ключа. Функцию следует использовать в цикле, так как она получает информацию о значении только одного параметра по индексу. При использовании функции, реестр должен быть открыт, имея соответствующий уровень доступа. Функция никогда не возвращает в качестве значения параметр по умолчанию, подразумевая, что данный параметр всегда существует.

Возвращаемое значение

В случае успеха функция возвращает 0, в случае ошибки - код ошибки

Параметры

hkey
Описатель открываемого раздела реестра, содержащего значения параметров для перебора или один из следующих флагов, которые идентифицируют ветви:
HKEY_CLASSES_ROOT = &H80000000
Ветвь HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA = &H80000004
Ветвь HKEY_PERFORMANCE_DATA
HKEY_USERS = &H80000003
Ветвь HKEY_USERS
dwIndex
Список подразделов для получения информации. Индекс начинается с 0
lpValueName
Имя подраздела
lpcbValueName
Размер строки, передаваемой lpName
lpReserved
Зарезервированный параметр. Установлен равным 0. Используйте ByVal перед 0
lpType
Один из следующих флажков, идентифицирующих тип данных:
REG_BINARY = 3
Двоичные данные
REG_DWORD = 4
Аналогично REG_DWORD_LITTLE_ENDIAN
REG_DWORD_BIG_ENDIAN = 5
32-разрядное целое число, сохраненное в формате big-endian
REG_DWORD_LITTLE_ENDIAN = 4
32-разрядное целое число, сохраненное в формате little-endian
REG_EXPAND_SZ = 2
Строка с нулевым символом в конце, которая содержит нерасширенные переменные среды
REG_LINK = 6
Символьная связь в формате Unicode
REG_MULTI_SZ = 7
Ряд строк, разделенных нулевым символом и заканчивающийся двумя нулевыми символами
REG_NONE = 0
Неопределенный тип данных
REG_RESOURCE_LIST = 8
Список ресурсов драйвера устройства
REG_SZ = 1
Строка с завершающим нулевым символом
lpData
Число, строка или другие данные для чтения в системном реестре
lpcbData
Устанавливает длину в байтах, передаваемых значений lpData

Пример

' Перебираем значения параметров раздела
' HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
Dim hKey As Long, counter As Long, sSave As String
Me.Print "RegEnumValue:"
' Откроем раздел
RegOpenKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion", hKey
counter = 0
  Do
' Создаем буфер
    sSave = String(255, 0)
' Перечисляем значения
     If RegEnumValue(hKey, counter, sSave, 255, 0, ByVal 0&, ByVal 0&, ByVal 0&) <> 0 Then Exit Do
' Выводим результаты
        Me.Print sSave
        counter = counter + 1
    Loop
' Закрываем реестр
RegCloseKey hKey

Смотри также

RegEnumKeyEx

Категория

Реестр