zuiyi 发表于 2012-6-16 14:06:03

如何把鼠标“左右键”同时按的事件,作为快捷键呢?

如何把鼠标“左右键”同时按的事件,作为快捷键呢?

afan 发表于 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

zuiyi 发表于 2012-6-16 17:54:08

回复 2# afan


    先谢了

zerobin 发表于 2012-6-16 19:32:29

在我眼里,写出的代码里有hook的人,都是神人。
顶版主。看不懂啊加油,谢谢

komaau3 发表于 2012-6-16 20:11:59

传说中的鼠标hook原来是这么用的

xms77 发表于 2012-6-16 21:09:32

又是只有hook能干的活,好累啊!

menfan1 发表于 2012-6-17 11:05:49

又学习了一招哈。。

fcymk2 发表于 2012-11-14 14:20:31

用hook感觉好复杂@_@
页: [1]
查看完整版本: 如何把鼠标“左右键”同时按的事件,作为快捷键呢?