检索指定窗口的工作区的位置和大小.
WinGetClientPos &OutX, &OutY, &OutWidth, &OutHeight, WinTitle, WinText, ExcludeTitle, ExcludeText
类型: VarRef
如果省略, 将不会存储相应的值. 否则, 请指定用于存储工作区左上角的 X 和 Y 坐标的输出变量的引用.
类型: VarRef
如果省略, 将不会存储相应的值. 否则, 请指定用于存储工作区宽度和高度的输出变量的引用.
如果这些都是空白或省略, 将使用上次找到的窗口. 否则, 为 WinTitle 指定窗口标题或其他条件, 来标识目标窗口, 和/或为 WinText 指定目标窗口的单个文本元素的子字符串(由包含的 Window Spy 实用程序显示).
ExcludeTitle 和 ExcludeText 可用于根据标题或文本排除一个或多个窗口. 它们的规范类似于 WinTitle 和 WinText, 除了 ExcludeTitle 不识别除窗口标题之外的任何条件.
窗口标题和文本是区分大小写的. 默认情况下, 不检测隐藏窗口, 而检测隐藏文本元素, 除非使用 DetectHiddenWindows 和 DetectHiddenText 进行更改. 默认情况下, 窗口标题的任意位置包含 WinTitle 或 ExcludeTitle 就能形成匹配, 除非使用 SetTitleMatchMode 进行了更改.
如果找不到窗口, 则抛出 TargetError.
工作区是窗口的一部分, 可以包含控件. 它不包括窗口的标题栏, 菜单栏(如果有标准菜单) 和边框. 与 WinGetPos 返回的值相比, 工作区的位置和大小较少地依赖于操作系统版本和主题.
如果 WinTitle 为 "Program Manager"
, 该函数将检索桌面的大小, 通常与当前屏幕分辨率相同.
最小化的窗口仍然有位置和大小. 在这种情况下, 返回的值可能因操作系统和配置而异, 但是 X 和 Y 坐标通常为 -32000, 而宽度和高度为 0.
要发现鼠标当前悬停在其上的窗口和控件的名称, 请使用 MouseGetPos.
在具有不同 DPI 设置的多个屏幕的系统上, 由于操作系统 DPI 缩放, 返回的位置和大小可能与预期不同.
WinGetPos, WinMove, ControlGetPos, WinGetTitle, WinGetText, ControlGetText
WinGetClientPos &X, &Y, &W, &H, "Calculator" MsgBox "Calculator's client area is at " X "," Y " and its size is " W "x" H
WinGetClientPos &X, &Y,,, "A" MsgBox "The active window's client area is at " X "," Y