WinGetPos


返回匹配指定条件的窗口的位置和大小。

WinGetPos [, X, Y, Width, Height, WinTitle, WinText, ExcludeTitle, ExcludeText]

参数

X, Y 存储目标窗口左上角的横坐标和纵坐标的变量。如果省略,则不能获取到相应的数据。
Width/Height 存储目标窗口的宽或高的变量。如果省略,则不能获取到相应的数据。
WinTitle 目标窗口的标题或标题中的部分文字(匹配模式由 SetTitleMatchMode 决定)。如果省略后面的 3 个参数,默认目标是 上一次匹配窗口 。如果这个参数使用字母 A ,同时省略后面的 3 个参数,则以当前激活的窗口作为目标。要用窗口的 class 名进行匹配,使用 ahk_class 精确 class 名(Window Spy 中可以显示 class 名)。要用窗口的 进程标识符(PID)进行匹配,使用 ahk_pid %PID变量% 。要用 窗口组 ,使用 ahk_group 组名 。要用窗口的 唯一 ID 进行匹配,使用 ahk_id %ID变量% 。要减小检测范围,使用 多重条件 ,例如:My File.txt ahk_class Notepad
WinText 如果使用这个参数,则它应该是目标窗口中某个文本元素的子字符串(在 Window Spy 中会显示出窗口中的文本元素)。隐藏文本只有在 DetectHiddenText 设置为 ON 的时候才能检测到。
ExcludeTitle 标题中包含该参数指定的文字的窗口将被除外。
ExcludeText 文本元素中包含该参数指定的文字的窗口将被除外。

注意

如果没有匹配窗口,输出变量为空。

如果参数 WinTitle 使用“Program Manager”,该命令会返回桌面的大小,一般和当前屏幕分辨率相同。

最小化的窗口同样有位置和大小,具体取决于操作系统以及系统设置。

要获取当前鼠标所指窗口和控件的名称,使用 MouseGetPos

窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口,必须打开 DetectHiddenWindows

相关命令

WinMove, ControlGetPos, WinGetActiveStats, WinGetActiveTitle, WinGetTitle, WinGetText, ControlGetText

示例

WinGetPos, X, Y, Width, Height, Calculator
MsgBox, Calculator is at %X%`,%Y%

WinGetPos, X, Y, , , A  ; “A”表示使用当前激活窗口为目标窗口
MsgBox, The active window is at %X%`,%Y%

IfWinExist, Untitled - Notepad
{
    WinGetPos, Xpos, Ypos  ; 使用上面找到的窗口
    MsgBox, Notepad is at %Xpos%`,%Ypos%
}