# 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%
    }