WinGetPos

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

WinGetPos &X, &Y, &Width, &Height, WinTitle, WinText, ExcludeTitle, ExcludeText

参数

&X, &Y

类型: VarRef

用于存储目标窗口左上角的 X 和 Y 坐标的变量的引用. 如果省略, 则不会存储相应的坐标.

&Width, &Height

类型: VarRef

用于目标窗口的宽度和高度的变量的引用. 如果省略, 则不会存储相应的坐标.

WinTitle

类型: 字符串, 整数对象

识别目标窗口的窗口标题或其他条件. 请参阅 WinTitle.

WinText

类型: 字符串

如果存在, 此参数必须是目标窗口的单个文本元素的子字符串(和内置的 Window Spy 工具显示的一样). 如果 DetectHiddenText 为 ON, 那么会检测隐藏文本元素.

ExcludeTitle

类型: 字符串

标题中含有此参数值的窗口将被排除.

ExcludeText

类型: 字符串

文本中含有此参数值的窗口将被排除.

错误处理

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

备注

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

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

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

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

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

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 ; Use the window found by WinExist.
    MsgBox "Notepad is at " Xpos "," Ypos
}
unixetc