Функция RegNotifyChangeKeyValue

Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" Alias "RegNotifyChangeKeyValue" ( _
        ByVal hKey As Long,  _
        ByVal bWatchSubtree As Long,  _
        ByVal dwNotifyFilter As Long,  _
        ByVal hEvent As Long,  _
        ByVal fAsynchronus As Long) As Long

RegNotifyChangeKey оповещает об изменении содержимого заданного ключа или подключей реестра.

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

В случае успеха функция возвращает ERROR_SUCCESS. В случае ошибки возвращается ненулевое значение ошибки. Можно использовать FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM для получения описания ошибки.

Параметры

hKey
Описатель открываемого раздела реестра или один из следующих флагов, которые идентифицируют ветви, в которых будут созданы новые разделы:
Const HKEY_CLASSES_ROOT = &H80000000
Ветвь HKEY_CLASSES_ROOT
Const HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG
Const HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER
Const HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE
Const HKEY_USERS = &H80000003
Ветвь HKEY_USERS
bWatchSubtree
Определяет флаг отслеживания изменений. Если True, то вместе с заданным ключом отслеживаются и его подключи. Если False - только заданный ключ
dwNotifyFilter
Комбинация флагов, определяющих вид слежения:
REG_NOTIFY_CHANGE_NAME = &H1Отслеживать добавление и удаление подключа
REG_NOTIFY_CHANGE_ATTRIBUTES = &H2Отслеживать изменение атрибутов
REG_NOTIFY_CHANGE_LAST_SET = &H4Отслеживать изменения значений ключа, включая добавление, удаление, изменение существующего значения
REG_NOTIFY_CHANGE_SECURITY = &H8Отслеживать изменения атрибутов безопасности
hEvent
Дескриптор события. Если параметр fAsynchronous TRUE, функция возвращается сразу и изменения передаются в это событие. Если fAsynchronous- FALSE, то hEvent игнорируется
fAsynchronus
Определяет флаг, сигнализирующий, как функция сообщает об изменениях. Если параметр TRUE, функция завершается немедленно и создается заданное событие. Если этот параметр равен FALSE, возвращение функции происходит после обнаружения изменений

Пример

' Пример применения функции
' Запустите програму
' Запустите редактор реестра Regedit.exe
' Откройте раздел HKEY_CURRENT_USER
' Измените что-нибудь там
' Программа оповестит вас об этом!
Const REG_NOTIFY_ALL = (REG_NOTIFY_CHANGE_NAME Or REG_NOTIFY_CHANGE_ATTRIBUTES Or REG_NOTIFY_CHANGE_LAST_SET Or REG_NOTIFY_CHANGE_SECURITY)

RegNotifyChangeKeyValue HKEY_CURRENT_USER, True, REG_NOTIFY_ALL, ByVal 0&, False
MsgBox "Реестр был изменен"

Смотри также

RegDeleteKey, RegQueryValueEx

Категория

Реестр