以下主要涉及窗口操作和鼠标控制,包括获取窗口的位置、计算窗口的相对坐标以及将鼠标移动到窗口的中心。

让你进一步了解ahk的全屏坐标系相对窗口坐标系之间的关系

 

#SingleInstance Force
CoordMode Mouse

; ControlClick, x217 y135, ahk_class AHKEditor
; ControlClick的转换写法
WinGetPos, dx, dy, , , ahk_class AHKEditor
MouseClick, , dx+217, dy+135, , 0
Return


FindText().Click(X, Y, "L")
WinGetPos, dx, dy, , , ahk_class 后台点击鼠标
ControlClick, % "x" X-dx " y" Y-dy, ahk_class 后台点击鼠标


F1::
MouseGetPos, x, y
WinGetPos, dx, dy, dw, dh, A

; 屏幕转窗口:
相对坐标X := x-dx, 相对坐标Y := y-dy
MsgBox % "鼠标在窗口相对坐标为:" 相对坐标X "," 相对坐标Y "`n`n窗口在屏幕的坐标为:" dx "," dy "`n窗口 宽 x 高:" dw "x" dh

; 注意:x和y坐标复用才得到正确坐标
; 窗口转屏幕:
; x := x+dx, y := y+dy
; MsgBox % "窗口转屏幕:" x "|" y
Return

; F3移动鼠标到窗口中央
F3::
WinGetPos, dx, dy, dw, dh, A

窗口中央X := dx+dw/2, 窗口中央Y := dy+dh/2
MouseMove, 窗口中央X, 窗口中央Y, 0
Return

; 英文论坛的无效参考
; https://www.autohotkey.com/boards/viewtopic.php?f=6&t=38472

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。