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 для получения описания ошибки.
REG_NOTIFY_CHANGE_NAME = &H1 | Отслеживать добавление и удаление подключа |
REG_NOTIFY_CHANGE_ATTRIBUTES = &H2 | Отслеживать изменение атрибутов |
REG_NOTIFY_CHANGE_LAST_SET = &H4 | Отслеживать изменения значений ключа, включая добавление, удаление, изменение существующего значения |
REG_NOTIFY_CHANGE_SECURITY = &H8 | Отслеживать изменения атрибутов безопасности |
' Пример применения функции
' Запустите програму
' Запустите редактор реестра 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 "Реестр был изменен"