Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <WindowsConstants.au3>
- #include <WinAPI.au3>
- ;Catches Doubleclicks without letting them reach any other processes besides this script.
- ;Unfortunately the delay for normal clicks cannot be prevented due to this design.
- ; -Author: name22 (www.autoit.de)
- Global Const $iDoubleclickTime = 150
- Global $hCallback, $hMod, $hHook, $iClickState = 0
- OnAutoItExitRegister("_Shutdown")
- HotKeySet("{ESC}", "_Exit")
- $hCallback = DllCallbackRegister("_LL_MouseProc", "long", "int;wparam;lparam")
- $hMod = _WinAPI_GetModuleHandle(0)
- $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hCallback), $hMod)
- While Sleep(1000)
- WEnd
- Func _LL_MouseProc($nCode, $wParam, $lParam)
- If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
- Switch $wParam
- Case $WM_LBUTTONDOWN
- Switch $iClickState
- Case 0
- AdlibRegister("_DelayMouseClick", $iDoubleclickTime)
- $iClickState = 1
- Return 1
- Case 1
- AdlibUnRegister("_DelayMouseClick")
- $iClickState = 0
- ConsoleWrite("Doubleclick!" & @CRLF)
- Return 1
- Case 2
- $iClickState = 0
- EndSwitch
- EndSwitch
- Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
- EndFunc
- Func _DelayMouseClick()
- $iClickState = 2
- MouseClick("left")
- AdlibUnRegister("_DelayMouseClick")
- EndFunc
- Func _Exit()
- Exit
- EndFunc
- Func _Shutdown()
- Do
- Sleep(20)
- Until $iClickState = 0
- _WinAPI_UnhookWindowsHookEx($hHook)
- DllCallbackFree($hCallback)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement