Unforgiveable@
Code:
msgbox, Ctrl+Q to pause
winget, id, id, [C
X=380
Y=301
loop
{
gosub, rc
sleep 2000
ControlClick, x123 y739,ahk_id %id%,,right
sleep 2000
ControlClick, x152 y746,ahk_id %id%,,right
sleep 2000
}
^q::pause
rc:
hwnd := ControlFromPoint(X, Y, "ahk_id " id,"", cX, cY)
PostMessage, 0x204, 0x8 | 0x1, cX & 0xFFFF | (cY & 0xFFFF) << 16,, ahk_id %hwnd%
PostMessage, 0x205, 0x8 , cX & 0xFFFF | (cY & 0xFFFF) << 16,, ahk_id %hwnd%
return
ControlFromPoint(X, Y, WinTitle="", WinText="", ByRef cX="", ByRef cY="", ExcludeTitle="", ExcludeText="")
{
if !(hwnd := WinExist(WinTitle, WinText, ExcludeTitle, ExcludeText))
return false
VarSetCapacity(pt,8)
VarSetCapacity(wi,60), NumPut(60,wi)
DllCall("GetWindowInfo","uint",hwnd,"uint",&wi)
NumPut(X + (w:=NumGet(wi,4,"int")) - (cw:=NumGet(wi,20,"int")), pt,0)
NumPut(Y + (h:=NumGet(wi,8,"int")) - (ch:=NumGet(wi,24,"int")), pt,4)
Loop {
child := DllCall("ChildWindowFromPointEx","uint",hwnd,"int64",NumGet(pt,0,"int64"),"uint",0x5)
if !child or child=hwnd
break
DllCall("MapWindowPoints","uint",hwnd,"uint",child,"uint",&pt,"uint",1)
hwnd := child
}
cX := NumGet(pt,0,"int")
cY := NumGet(pt,4,"int")
return hwnd
}
return