Функция RegCreateKeyEx

Declare Function RegCreateKeyEx Lib "advapi32.dll" 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

Платформа

Win 95/98, Win NT

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
Категория
Реестр

В начало.