Переместите мышку в почтовое сообщение - PullRequest
0 голосов
/ 08 марта 2020
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)
}

Код в AutoHotkey.

Мой сценарий перемещает мышь в положение XY, используя postmessage, и отправляет щелчок, проблема в том, что если я перемещаю мышь во время выполнения сценария, он щелкает там, где находится мышь.

Что я мог сделать, чтобы избежать этого? Блокировка ввода с помощью мыши не поможет.

Есть ли способ получить положение мыши, перемещенное WS_MOUSEMOVE? Если я использую MouseGetPos, он получает позицию мыши на экране, а не там, где мышь была перемещена с помощью WS_MOUSEMOVE.

...