方法一 Public Const GWL_WNDPROC = (-4) Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long方法二 Public Const WH_CALLWNDPROC = 4 Public Const WH_KEYBOARD = 2 Public Const WH_MOUSE = 7 Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
'启动挂钩 '设置新的窗口函数和备份老的窗口函数 wlOldProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf OwnWinProc)'卸载程序时: SetWindowLong hWnd, GWL_WNDPROC, wlOldProc'在标准模块Module里添加窗口函数: Public Function OwnWinProc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case wMsg Case ........ '检测Windows事件
End Select OwnWinProc = CallWindowProc(wlOldProc, hWnd, wMsg, wParam, lParam) End Function
Public Const GWL_WNDPROC = (-4)
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long方法二
Public Const WH_CALLWNDPROC = 4
Public Const WH_KEYBOARD = 2
Public Const WH_MOUSE = 7
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
'设置新的窗口函数和备份老的窗口函数
wlOldProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf OwnWinProc)'卸载程序时:
SetWindowLong hWnd, GWL_WNDPROC, wlOldProc'在标准模块Module里添加窗口函数:
Public Function OwnWinProc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case wMsg
Case
........
'检测Windows事件
End Select
OwnWinProc = CallWindowProc(wlOldProc, hWnd, wMsg, wParam, lParam)
End Function