Функция RegCreateKeyEx
Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" ( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByVal Reserved As Long, _
ByVal lpClass As String, _
ByVal dwOptions As Long, _
ByVal samDesired As Long, _
lpSecurityAttributes As SECURITY_ATTRIBUTES, _
phkResult As Long, _
lpdwDisposition As Long) As Long
RegCreateKeyEx создает новый раздел реестра. Или, если он существует, открывает его, что аналогично функции RegOpenKeyEx. Описатель раздела передается в переменную phkResult
Возвращаемое значение
В случае успеха функция возвращает 0, в случае ошибки - код ошибки
Параметры
- hKey
- Дескриптор к открываемому разделу реестра или один из следующих флагов, которые идентифицируют ветви, в которых будут созданы новые разделы:
- HKEY_CURRENT_USER = &H80000001
- Ветвь HKEY_CURRENT_USER хранит информацию о пользователе, который в настоящий момент работает на компьютере
- HKEY_LOCAL_MACHINE = &H80000002
- Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе - установки аппаратного и программного обеспечения, конфигурация приложений, установки безопасности
- HKEY_USERS = &H80000003
- Ветвь HKEY_USERS содержит информацию обо всех пользователях, зарегистрированных в системе
- HKEY_CURRENT_CONFIG = &H80000005
- Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации
- HKEY_DYN_DATA = &H80000006
- Ветвь HKEY_DYN_DATA хранит динамическую информацию
- lpSubkey
- Имя для нового раздела
- Reserved
- Зарезервированный параметр. Установлен равным 0
- lpClass
- Имя класса или типа объекта. Можно использовать пустую строку
- dwOptions
- Установите в 0, если вы хотите сохранить раздел в реестре. Если вы этого не хотите - установите параметр, равным 1, и раздел будет уничтожен при выходе из Windows
- samDesired
- Один или более флагов для желаемого доступа к чтению/записи:
- KEY_ALL_ACCESS = &HF003F
- Разрешен любой тип доступа
- KEY_CREATE_LINK = &H20
- Разрешение для создания символьных ссылок
- KEY_CREATE_SUB_KEY = &H4
- Разрешение для создания подраздела
- KEY_ENUMERATE_SUB_KEYS = &H8
- Разрешение для перечисления подразделов
- KEY_EXECUTE = &H20019
- Аналогично KEY_READ
- KEY_NOTIFY = &H10
- Разрешение на уведомление изменений
- KEY_QUERY_VALUE = &H1
- Разрешен доступ к данным подраздела
- KEY_READ = &H20019
- Разрешен доступ к чтению
- KEY_SET_VALUE = &H2
- Разрешение на установку данных подраздела
- KEY_WRITE = &H20006
- Разрешен доступ к записи
- lpSecurityAttributes
- Для NT, уровень безопасности, передаваемый разделу. Для остальных версий Windows параметр равен 0
- phkResult
- Переменная, получаемая от дескриптора нового или открытого раздела
- lpdwDisposition
- Переменная, которая получает значение 1, если раздел был создан и значение 2, если был открыт уже существующий раздел
Пример
' Создаем раздел под именем
' HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config
Dim hregkey As Long ' дескриптор для вновь созданного или открытого раздела реестра
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String ' имя подраздела
Dim neworused As Long ' получаем 1, если раздел был создан или 2, если был открыт существующий раздел
Dim retval As Long ' возвращаемое значение
' назначаем название для нового раздела
subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True
' создаем или открываем раздел реестра
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then ' ошибка при открытии
Debug.Print "ошибка при открытии или создании раздела"
End ' закрываем программу
End If
' закрываем раздел
retval = RegCloseKey(hregkey)
Смотри также
RegCloseKey, RegDeleteKey, RegOpenKeyEx
Категория
Реестр