一、新建一个模块,复制下面代码:
Option Explicit
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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WH_MOUSE_LL = 14
Public Const WM_LBUTTONDOWN = &H201
Public lHook(1) As Long
Public Function LowLevelMouseProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean
Select Case wParam
Case WM_LBUTTONDOWN
Debug.Print "鼠标的左键被按下"
End Select
If fEatKeystroke Then
LowLevelMouseProc = -1
Else
LowLevelMouseProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End If
End Function
二、调用举例:
Private Sub Form_Load()
lHook(1) = SetWindowsHookEx(WH_MOUSE_LL, AddressOf LowLevelMouseProc, App.hInstance, 0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
UnhookWindowsHookEx lHook(1)
End Sub
温馨提示:答案为网友推荐,仅供参考