找回密码
 加入
搜索
查看: 4112|回复: 12

[系统综合] [已解决]求一个鼠标钩子例子

  [复制链接]
发表于 2010-8-25 15:45:45 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2010-9-2 02:53 编辑

麻烦高手们给一个鼠标捕捉工具。
例如我按下左击,消息提示暗下左击等等。
希望这消息在任何状态下有效,不限制在某窗体内。

需要拦截 鼠标左、右、中三个键。
多谢!!!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-8-25 19:21:39 | 显示全部楼层
 楼主| 发表于 2010-8-25 20:39:52 | 显示全部楼层
不行啊,要拦截事件的,麻烦高手帮忙啊.
发表于 2010-8-25 20:41:27 | 显示全部楼层
回复 3# kxing


    你说的拦截是只是在按下后提示一个消息还是按键无效?
发表于 2010-8-25 21:18:52 | 显示全部楼层
 楼主| 发表于 2010-8-25 23:26:42 | 显示全部楼层
回复 4# xsjtxy

要按下后消息提示,不是没反应.
关于那个窗口纪录程序太复杂了,提取不了所需部分.
发表于 2010-8-26 09:52:35 | 显示全部楼层
回复 6# kxing


    只是提示不拦截操作吗?
 楼主| 发表于 2010-8-26 10:09:56 | 显示全部楼层
对的,只要告诉我按了哪一个键就可以了.
例如我点了左击,msgbox(0,'','鼠标左击')
发表于 2010-8-26 12:40:55 | 显示全部楼层
#Include <WinAPI.au3>
#include <WindowsConstants.au3>

While 1
Global $_endmouse=""
$_whand = DllCallbackRegister("_Mouse_Events_Handler", "int", "int;ptr;ptr")
$_whmod = _WinAPI_GetModuleHandle(0)
$_whook=_WinAPI_SetWindowsHookEx($WH_MOUSE_LL,DllCallbackGetPtr($_whand),$_whmod)
$mouse = _waitmouse()
Switch $mouse
        Case 1
                MsgBox(64,"","按下鼠标左键")
        Case 2
                MsgBox(64,"","按下鼠标右键")
        Case 3
                MsgBox(64,"","按下鼠标中键")
        Case 4
                MsgBox(64,"","鼠标轮转动")
EndSwitch
WEnd

Func _waitmouse()
        While 1
        Sleep(1)
                If Not $_endmouse="" Then
                        _WinAPI_UnhookWindowsHookEx($_whook)
                        DllCallbackFree($_whand)
                        Return $_endmouse
                EndIf
        WEnd
EndFunc

Func _Mouse_Events_Handler($wnCode, $wwParam, $wlParam)
        Switch $wwParam
                Case $WM_LBUTTONUP     ;按下鼠标左键
                        $_endmouse = 1
                Case $WM_RBUTTONDOWN   ;按下鼠标右键
                        $_endmouse = 2
                Case $WM_MBUTTONDOWN   ;按下鼠标中键
                        $_endmouse = 3
                Case $WM_MOUSEWHEEL    ;鼠标轮转动
                        $_endmouse = 4     
EndSwitch
EndFunc

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-8-26 14:32:44 | 显示全部楼层
十分感谢!马上去测试.
发表于 2010-8-26 14:37:06 | 显示全部楼层
這個應該不難阿,看起來是這樣
 楼主| 发表于 2010-8-26 15:11:18 | 显示全部楼层
另外请教下是否能让按下鼠标后不要触发点击事件呢
例如我在一个按钮上我左击后不要触发事件但有消息提示.
辛苦了!!!
发表于 2012-8-29 15:52:32 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 03:01 , Processed in 0.108760 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表