[RESOLVED] mouse hook problem
i'm using a mouse hook in order to trap mouse clicks as following :
Code:
Option Explicit
Public Const WH_MOUSE = 7
Public Const WM_LBUTTONDOWN = 513
Public Const WM_RBUTTONDOWN = 516
Public Const HC_ACTION = 0
Public IsHooked As Boolean
Private 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
Private Declare Function UnhookWindowsHookEx Lib "user32" ( _
ByVal hHook As Long _
) As Long
Private Declare Function CallNextHookEx Lib "user32" ( _
ByVal hHook As Long, _
ByVal nCode As Long, _
ByVal wParam As Long, _
lParam As Any _
) As Long
Public hMhook As Long
Public rmouseButtonWasPressed As Boolean
Public Sub SetMouseHook()
If IsHooked = False Then
hMhook = SetWindowsHookEx(WH_MOUSE, AddressOf MouseHookProc, App.hInstance, 0)
IsHooked = True
End If
End Sub
Public Sub RemoveMouseHook()
UnhookWindowsHookEx hMhook
IsHooked = False
End Sub
Public Function MouseHookProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Integer
If (nCode >= 0 And nCode = HC_ACTION) Then
If wParam = WM_RBUTTONDOWN And rmouseButtonWasPressed = False Then
rmouseButtonWasPressed = True
Form1.Text1.Text = "rmouse"
Else
rmouseButtonWasPressed = False
Form1.Text1.Text = ""
End If
End If
MouseHookProc = CallNextHookEx(hMhook, nCode, wParam, lParam)
End Function
it works fine, until i alt-tab to another window and switch back to this, the procedure doesn't get the event any more. anybody knows why ?