找回密码
 加入
搜索
查看: 2289|回复: 7

[系统综合] 如何把鼠标“左右键”同时按的事件,作为快捷键呢?

  [复制链接]
发表于 2012-6-16 14:06:03 | 显示全部楼层 |阅读模式
如何把鼠标“左右键”同时按的事件,作为快捷键呢?
发表于 2012-6-16 15:16:38 | 显示全部楼层
本帖最后由 afan 于 2012-6-16 15:18 编辑

简单写了个,需要的自己测试
#include <WinAPI.au3>

HotKeySet('^q', '_Exit')        ;Ctrl - Q 退出

Global $iMouseDown, $handle, $hHook
$handle = DllCallbackRegister('_GetMouseEvent', 'int', 'int;ptr')
$hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($handle), _WinAPI_GetModuleHandle(0))

Local $iLD = 0, $iRD = 0
While 1
        Sleep(1)
        Switch $iMouseDown
                Case 0
                        $iLD = 0
                        $iRD = 0
                Case 1
                        $iLD = 1
                Case 2
                        $iRD = 1
        EndSwitch
        If $iLD + $iRD = 2 Then MsgBox(64, '', '按下了鼠标左右键 ')
WEnd

Func _GetMouseEvent($1, $iwParam)
        #forceref $1
        Switch $iwParam
                Case 0x0201 ;$WM_LBUTTONDOWN
                        $iMouseDown = 1
                Case 0x0204 ;$WM_RBUTTONDOWN
                        $iMouseDown = 2
                Case Else
                        $iMouseDown = 0
        EndSwitch
EndFunc   ;==>_GetMouseEvent

Func _Exit()
        _WinAPI_UnhookWindowsHookEx($hHook)
        DllCallbackFree($handle)
        Exit
EndFunc   ;==>_Exit

评分

参与人数 1金钱 +20 贡献 +2 收起 理由
user3000 + 20 + 2 估计我要研究上三五天才能看个明白!

查看全部评分

 楼主| 发表于 2012-6-16 17:54:08 | 显示全部楼层
回复 2# afan


    先谢了
发表于 2012-6-16 19:32:29 | 显示全部楼层
在我眼里,写出的代码里有hook的人,都是神人。
顶版主。看不懂啊加油,谢谢
发表于 2012-6-16 20:11:59 | 显示全部楼层
传说中的鼠标hook原来是这么用的
发表于 2012-6-16 21:09:32 | 显示全部楼层
又是只有hook能干的活,好累啊!
发表于 2012-6-17 11:05:49 | 显示全部楼层
又学习了一招哈。。
发表于 2012-11-14 14:20:31 | 显示全部楼层
用hook感觉好复杂@_@
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 11:36 , Processed in 0.080918 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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