Results 1 to 5 of 5

Thread: [RESOLVED] mouse hook problem

Threaded View

  1. #1

    Thread Starter
    Member
    Join Date
    Apr 2009
    Posts
    36

    [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 ?
    Last edited by mirrormirror; Oct 6th, 2009 at 05:10 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width