Как показывает "Winspector", на момент клика "wParam" отображает нажатой соответствующую кнопку мыши. Для ЛКМ = 0x0001, ПКМ = 0x0002, а вот для отпускания уже 0. Следующие функции посылают ЛКМ и ПКМ соответственно, контролу, переданному им в параметре "varControl", в координатах "new_x" и "new_y". Последняя функция возвращает хендл контрола по координатам:
; ВАЖНО !!!
CoordMode, Mouse, Screen
SendLcilk(new_x, new_y, varControl) {
WinGetPos, hw_x, hw_y,,, ahk_id %varControl%
l_param := % (new_x - hw_x) + ((new_y - hw_y) * 65536)
SendMessage, 0x0201, 0x0001, %l_param%, , ahk_id %varControl%
sleep 50
SendMessage, 0x0202, 0x0000, %l_param%, , ahk_id %varControl%
}
SendRcilk(new_x, new_y, varControl) {
WinGetPos, hw_x, hw_y,,, ahk_id %varControl%
l_param := % (new_x - hw_x) + ((new_y - hw_y) * 65536)
SendMessage, 0x0204, 0x0002, %l_param%, , ahk_id %varControl%
sleep 50
SendMessage, 0x0205, 0x0000, %l_param%, , ahk_id %varControl%
}
Hget(x, y) {
return % DllCall("WindowFromPoint", "int64", x & 0x00000000FFFFFFFF | y<<32)
}
; например:
x := 100
y := 100
SendRcilk(x, y, Hget(x, y))