Autohotkey 自动热键获取当前活动子窗口的宽度

Autohotkey 自动热键获取当前活动子窗口的宽度,autohotkey,Autohotkey,我正在尝试编写一个脚本,将鼠标光标移动到活动子窗口的中心 WinGetActiveStats, Title, Width, Height, X, Y MouseMove, Width / 2, Height / 2, 0 上面是主窗口的技巧。但是,我似乎找不到一种方法来获取活动子窗口的宽度和高度,以便将鼠标光标移动到子窗口的中心 WinGetActiveStats, Title, Width, Height, X, Y MouseMove, Width / 2, Height / 2, 0

我正在尝试编写一个脚本,将鼠标光标移动到活动子窗口的中心

WinGetActiveStats, Title, Width, Height, X, Y
MouseMove, Width / 2, Height / 2, 0
上面是主窗口的技巧。但是,我似乎找不到一种方法来获取活动子窗口的宽度和高度,以便将鼠标光标移动到子窗口的中心

WinGetActiveStats, Title, Width, Height, X, Y
MouseMove, Width / 2, Height / 2, 0
当与AutoCAD等软件一起使用时,这是一个非常有用的功能,您可以在任何给定时刻打开多个子窗口


谢谢,

以下功能应该可以正常工作:

ControlGetFocus, cr, A ; get the focused(active) control(child window) of the active window
ControlGetPos, x, y, width, Height, %cr%, A ; get the position and dimensions of this control
MouseMove, % x + Width / 2, % y + Height / 2, 0

哇,谢谢!试图玩弄控制权,但无法使其发挥作用。。工作起来很有魅力。非常感谢你!嘿,奥列格,你能解释一下为什么“A”不需要像%cr%那样用%包裹吗?@Rok A字面上是字母A,意思是使用活动窗口
cr
是一个变量,它不必是
cr
可以是任何东西。在
ControlGetFocus
中,它是一个输出变量,因此只需要变量的名称,当它在
ControlGetPos
中使用时,
%cr%
需要使用变量的内容,如果没有
%
它只会尝试对一个名为cr的控件进行操作,该控件可能不存在。谢谢!我还看到您使用“%”表示
%x+Width/2
我阅读了文档中的变量,但找不到任何相关内容。这是否告诉AHK,接下来的将是一个变量?谢谢@Rok是的,它将命令参数从传统语法更改为表达式语法,然后您可以直接使用变量,而无需使用%符号或任何表达式
MouseMove
命令实际上可以将其参数作为表达式处理,而无需前导
%
,因此在本例中不需要它,但我只是出于习惯添加了它(这是不寻常的,几乎所有命令都需要它)。以下是相关文件