代码:'Module
'PUT INTO .BAS MODULEPublic Enum ROOT_KEYS
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_PERFORMANCE_DATA = &H80000004
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End EnumPublic Enum NOTIFY_EVENTS
REG_NOTIFY_CHANGE_NAME = &H1
REG_NOTIFY_CHANGE_ATTRIBUTES = &H2
REG_NOTIFY_CHANGE_LAST_SET = &H4
REG_NOTIFY_CHANGE_SECURITY = &H8
End EnumPrivate Declare Function RegNotifyChangeKeyValue Lib "advapi32" (ByVal hKey As Long, ByVal bWatchSubTree As Boolean, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronous As Boolean) As LongPrivate Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongPublic Sub RegMonitor(hKey As ROOT_KEYS, sRegKeyPath As String, bWatchSubTree As Boolean, dwFilters As NOTIFY_EVENTS) Dim lKeyHandle As Long, lRet As Long
lRet = RegOpenKey(hKey, sRegKeyPath, lKeyHandle)
RegNotifyChangeKeyValue lKeyHandle, bWatchSubTree, _
dwFilters, 0&, False
lRet = RegCloseKey(lKeyHandle)
End Sub'Form1'---Using---
Private Sub Command1_Click()
Dim cap As String
sChange = ""
cap = Caption
Caption = "Monitoring..."
Label1 = "Try to change "
Label1 = Label1 & vbCrLf & "or any other key under "
Call RegMonitor(HKEY_CURRENT_USER, "Software", True, _
REG_NOTIFY_CHANGE_ATTRIBUTES + REG_NOTIFY_CHANGE_LAST_SET + _
REG_NOTIFY_CHANGE_NAME + REG_NOTIFY_CHANGE_SECURITY)
' Try to change this key or any other under HKCU
Label1 = "Your key have been changed!!!"
Label1 = Label1 & vbCrLf & "Press command button to start monitoring. "
Caption = cap
End Sub
'PUT INTO .BAS MODULEPublic Enum ROOT_KEYS
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_PERFORMANCE_DATA = &H80000004
HKEY_CURRENT_CONFIG = &H80000005
HKEY_DYN_DATA = &H80000006
End EnumPublic Enum NOTIFY_EVENTS
REG_NOTIFY_CHANGE_NAME = &H1
REG_NOTIFY_CHANGE_ATTRIBUTES = &H2
REG_NOTIFY_CHANGE_LAST_SET = &H4
REG_NOTIFY_CHANGE_SECURITY = &H8
End EnumPrivate Declare Function RegNotifyChangeKeyValue Lib "advapi32" (ByVal hKey As Long, ByVal bWatchSubTree As Boolean, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronous As Boolean) As LongPrivate Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongPublic Sub RegMonitor(hKey As ROOT_KEYS, sRegKeyPath As String, bWatchSubTree As Boolean, dwFilters As NOTIFY_EVENTS) Dim lKeyHandle As Long, lRet As Long
lRet = RegOpenKey(hKey, sRegKeyPath, lKeyHandle)
RegNotifyChangeKeyValue lKeyHandle, bWatchSubTree, _
dwFilters, 0&, False
lRet = RegCloseKey(lKeyHandle)
End Sub'Form1'---Using---
Private Sub Command1_Click()
Dim cap As String
sChange = ""
cap = Caption
Caption = "Monitoring..."
Label1 = "Try to change "
Label1 = Label1 & vbCrLf & "or any other key under "
Call RegMonitor(HKEY_CURRENT_USER, "Software", True, _
REG_NOTIFY_CHANGE_ATTRIBUTES + REG_NOTIFY_CHANGE_LAST_SET + _
REG_NOTIFY_CHANGE_NAME + REG_NOTIFY_CHANGE_SECURITY)
' Try to change this key or any other under HKCU
Label1 = "Your key have been changed!!!"
Label1 = Label1 & vbCrLf & "Press command button to start monitoring. "
Caption = cap
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货