# WinGetPos

获取指定窗口的位置和大小.

    WinGetPos &OutX, &OutY, &OutWidth, &OutHeight, WinTitle, WinText, ExcludeTitle, ExcludeText

## 参数

&OutX, &OutY

  类型: VarRef

  用于存储目标窗口左上角的 X 和 Y 坐标的变量的引用. 如果任一参数没有设置或省略, 则不会存储相应的坐标值.

&OutWidth, &OutHeight

  类型: VarRef

  用于目标窗口的宽度和高度的变量的引用. 如果任一参数没有设置或省略, 则不会存储相应的坐标值.

WinTitle, WinText, ExcludeTitle, ExcludeText

  类型: 字符串, 整数或对象

  如果这些都未设置或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示). 如果 DetectHiddenText 已经打开, 则检测隐藏文本元素. 标题或文本包含 ExcludeTitle 或 ExcludeText 的窗口将不被考虑.

## 错误处理

如果找不到窗口, 则抛出 TargetError.

## 备注

如果在 WinTitle 中使用 "Program Manager", 那么此函数会获取桌面的大小, 这通常与当前的屏幕分辨率相同.

最小化的窗口同样含有位置和大小. 此时返回的值可能因操作系统和配置而变化.

要获取鼠标当前悬停的窗口和控件的名称, 请使用 MouseGetPos.

窗口标题和文本是区分大小写的. 除非 DetectHiddenWindows 被打开, 否则不会检测隐藏窗口.

由于此函数返回的坐标包括窗口的标题栏, 菜单和边框, 它们可能取决于操作系统版本和主题. 要在不同的系统之间获得更一致的值, 可以考虑使用 WinGetClientPos.

在具有不同 DPI 设置的多个屏幕的系统上, 由于操作系统 DPI 缩放, 返回的位置和大小可能与预期不同.

## 相关

WinMove, WinGetClientPos, ControlGetPos, WinGetTitle, WinGetText, ControlGetText

## 示例

获取和报告计算器的位置和大小.

    WinGetPos &X, &Y, &W, &H, "Calculator"
    MsgBox "Calculator is at " X "," Y " and its size is " W "x" H

获取并报告活动窗口的位置.

    WinGetPos &X, &Y,,, "A"
    MsgBox "The active window is at " X "," Y

如果记事本存在, 检索并报告其位置.

    if WinExist("Untitled - Notepad")
    {
        WinGetPos &Xpos, &Ypos ; 使用由 WinExist 找到的窗口.
        MsgBox "Notepad is at " Xpos "," Ypos
    }

dftg