后台程序全局钩子获取鼠标滚轮滚动方向(VB6.0)
作者:admin 日期:2010-08-21
收集,以防忘记.
原帖: http://topic.csdn.net/u/20090825/11/d33dfa0a-2c8f-41f3-b78e-c70d352c887c.html
全局鼠标键盘HOOK封装: 封装了一个键盘鼠标HOOK类,使用方便(VB6.0)
需要增加的代码:
原帖: http://topic.csdn.net/u/20090825/11/d33dfa0a-2c8f-41f3-b78e-c70d352c887c.html
全局鼠标键盘HOOK封装: 封装了一个键盘鼠标HOOK类,使用方便(VB6.0)
需要增加的代码:
复制内容到剪贴板
程序代码

Private Type MSLLHOOKSTRUCT '鼠标HOOK时lParam指针指向的结构
pt As POINTAPI
dwMouseData As Long
dwFlags As Long
dwTime As Long
dwExtraInfo As Long
End Type
Private Const WM_MOUSEWHEEL As Long = &H20A
Private Sub objHookLL_MouseHook(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long, lRet As Long)
'鼠标HOOK事件.
'要吃了当前消息,把lRet = -1即可.
If Code = HC_ACTION And wParam = WM_MOUSEWHEEL Then
Dim stMLL As MSLLHOOKSTRUCT
Call CopyMemory(ByVal VarPtr(stMLL), ByVal lParam, Len(stMLL))
With stMLL
Debug.Print .dwMouseData / 65536 '输出滚轮状态
'在这里可以得到鼠标坐标以及其它信息
End With
End If
txtMCode.Text = Code
txtMwParam.Text = wParam
txtMlParam.Text = lParam
Debug.Print " M = " & Code, wParam, lParam
End Sub
pt As POINTAPI
dwMouseData As Long
dwFlags As Long
dwTime As Long
dwExtraInfo As Long
End Type
Private Const WM_MOUSEWHEEL As Long = &H20A
Private Sub objHookLL_MouseHook(ByVal Code As Long, ByVal wParam As Long, ByVal lParam As Long, lRet As Long)
'鼠标HOOK事件.
'要吃了当前消息,把lRet = -1即可.
If Code = HC_ACTION And wParam = WM_MOUSEWHEEL Then
Dim stMLL As MSLLHOOKSTRUCT
Call CopyMemory(ByVal VarPtr(stMLL), ByVal lParam, Len(stMLL))
With stMLL
Debug.Print .dwMouseData / 65536 '输出滚轮状态
'在这里可以得到鼠标坐标以及其它信息
End With
End If
txtMCode.Text = Code
txtMwParam.Text = wParam
txtMlParam.Text = lParam
Debug.Print " M = " & Code, wParam, lParam
End Sub
评论: 0 | 引用: 0 | 查看次数: 1013