Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Wait for Mouse Movement OR Key/MB Up/Down?
#6
Function WaitForKeyOrMouse
Code:
Copy      Help
;/
function# [^waitMaxS] [KBDLLHOOKSTRUCT&ks] [MSLLHOOKSTRUCT&ms]

;Waits for a key or mouse movement or click or wheel.

;Returns:
;;;on key: virtual key code (value 1-255). The table is in QM help. To get more info, eg key down or up, use ks.
;;;on mouse action: mouse message (WM_MOUSEMOVE etc, value 512-526). Documented in MSDN library. To get more info, use ms.

;waitMaxS - max number of seconds to wait. Default or 0 is infinite. Error on timeout.
;ks - if used, receives last keyboard event info. Documented in MSDN library.
;ms - if used, receives last mouse event info. Documented in MSDN library.

;This function does not work well if this process uses direct input or raw input or keyboard detector.


type WFKMDATA hkey hmouse w r KBDLLHOOKSTRUCT*ks MSLLHOOKSTRUCT*ms
WFKMDATA- __wfkm
__wfkm.w=0
__wfkm.r=0
__wfkm.ks=&ks
__wfkm.ms=&ms
__wfkm.hkey=SetWindowsHookEx(WH_KEYBOARD_LL &__WFKM_KeyProc _hinst 0)
__wfkm.hmouse=SetWindowsHookEx(WH_MOUSE_LL &__WFKM_MouseProc _hinst 0)
opt waitmsg 1
int e
wait waitMaxS V __wfkm.w
err e=1
UnhookWindowsHookEx __wfkm.hkey
UnhookWindowsHookEx __wfkm.hmouse
if(e) end _error
ret __wfkm.r

Function __WFKM_KeyProc
Code:
Copy      Help
;/
function nCode wParam KBDLLHOOKSTRUCT*h

WFKMDATA- __wfkm
if(nCode!=HC_ACTION) goto gr

__wfkm.r=h.vkCode&255

sel __wfkm.r
,case [VK_LCONTROL,VK_RCONTROL] __wfkm.r=VK_CONTROL
,case [VK_LSHIFT,VK_RSHIFT] __wfkm.r=VK_SHIFT
,case [VK_LMENU,VK_RMENU] __wfkm.r=VK_MENU
,case VK_RWIN __wfkm.r=VK_LWIN

if(__wfkm.ks) *__wfkm.ks=*h
__wfkm.w=1
;gr
ret CallNextHookEx(__wfkm.hkey nCode wParam h)

Function __WFKM_MouseProc
Code:
Copy      Help
;/
function nCode wParam MSLLHOOKSTRUCT*h

WFKMDATA- __wfkm
if(nCode!=HC_ACTION) goto gr

__wfkm.r=wParam
if(__wfkm.ms) *__wfkm.ms=*h
__wfkm.w=1
;gr
ret CallNextHookEx(__wfkm.hmouse nCode wParam h)


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)