Get mouse pos moved by Postmessage

0
Loop
    sleep,300

F2::
;BlockInput,MouseMove
Titulo = Nova guia - Google Chrome
WinGet, WinID, ID, %Titulo%

X = 1059
Y = 39


lparam := MakeLong(X, Y)

SendMessage, 0x086 , 0x00000000 , 0x00000000, , ahk_id %WinID%  ;NOACTIVATE SEND
PostMessage, 0x200, 0, %lparam%, , ahk_id %WinID% ; Move

FileAppend lparam %lparam% `n, *
Sleep, 200

PostMessage, 0x201, 0x0001, %lparam%, , ahk_id %WinID% ; LButtonDown
PostMessage, 0x202 , 0, %lparam%, , ahk_id %WinID% ; LButtonUp

return

;WM_MOUSEHOVER := 0x2A1
;WM_MOUSEFIRST = 0x200
;WM_MOUSEMOVE = 0x200
;WM_LBUTTONDOWN = 0x201
;WM_LBUTTONUP = 0x202
;WM_LBUTTONDBLCLK = 0x203
;WM_RBUTTONDOWN = 0x204
;WM_RBUTTONUP = 0x205
;WM_RBUTTONDBLCLK = 0x206
;WM_MBUTTONDOWN = 0x207
;WM_MBUTTONUP = 0x208
;WM_MBUTTONDBLCLK = 0x209
;WM_MOUSEWHEEL = 0x20A
;WM_MOUSEHWHEEL = 0x20E

MakeLong(LoWord, HiWord ) 
{
    return (HiWord << 16) | (LoWord & 0xffff)
}

Code in AutoHotkey.

My script moves the mouse to XY position using postmessage and send a click, the problem is, if i move the mouse while script runs he click where the mouse is.

What i could do to avoid it? Blocking mouse input wouldnt help.

Theres any way to get the position of mouse moved by WS_MOUSEMOVE? If i use MouseGetPos, it gets the pos of mouse in screen and not where the mouse was moved using WS_MOUSEMOVE.

autohotkey
mousemove
postmessage
windows-messages
asked on Stack Overflow Mar 8, 2020 by Caio César

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0