RegNotifyChangeKeyValue( HKEY hKey, BOOL bWatchSubtree, DWORD dwNotifyFilter,HANDLE hEvent, BOOL fAsynchronous);
函数参数说明:
hKey:监测的注册表项
bWatchSubtree:是否监测注册表项子项
dwNotifyFilter:通常有以下几种
REG_NOTIFY_CHANGE_NAME 侦测注册表项名称的变化,以及侦测注册表的创建和删除事件
REG_NOTIFY_CHANGE_ATTRIBUTES 侦测属性的变化
REG_NOTIFY_CHANGE_LAST_SET 侦测上一次修改时间的变化
REG_NOTIFY_CHANGE_SECURITY 侦测对安全特性的改动
hEvent:事件句柄
fAsynchronous:如果为FALSE,只有监测到变化,函数才会返回,否则会一直等待,直到监测到注册表项变化;如果为TRUE,函数会立即返回,但仍然会继续监听注册表项的变化,直到有变化,监听才结束。
不管是TRUE还是FALSE,在监听到注册表变化时,都会触发由hEvent参数指定的一个事件。
总结:
1、RegNotifyChangeKeyValue函数,如果监听到指定注册表项变化,hEvent参数指定的事件会被触发为有信号状态,如果没监测到变化,则为无信号状态。
2、RegNotifyChangeKeyValue函数,不管是立即返回还是等待返回,都只会在监听到注册表项变化后才会结束函数的监听。也可以理解为监听到变化该函数则自动结束退出。