Функция 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
Категория
Реестр