跳到主要内容

获取窗口信息/查找窗口

读取指定窗口的标题、类名、句柄、位置等,或按条件查找顶层 / 子窗口。找到之后要移动或关闭,用 窗口操作

当前模块定义

sys:getWindowTitleWindows系统Action
标准模块
输入 10 · 输出 20 · 枚举 2

输入参数

  • 目标窗口whichEnum必填

    判断哪个窗口的信息

    填写 固定输入默认 foreground
    11 个选项前台窗口、选择一个窗口、弹出面板前鼠标位置的窗口(可能为子窗口)
    前台窗口默认foreground
    选择一个窗口selectWindow
    弹出面板前鼠标位置的窗口(可能为子窗口)pointing
    弹出面板前鼠标位置窗口的根窗口pointing_root
    当前鼠标位置的窗口(可能为子窗口)pointing_now
    当前鼠标位置窗口的根窗口pointing_now_root
    句柄指定的窗口fromHwnd
    查找顶层窗口 (单个窗口findWindow
    所有顶层窗口top_windows
    查找子窗口/控件 (单个窗口findChildWindow
    查找子窗口 (多个窗口child_windows
  • 窗口句柄hWndhWndInteger可选

    未指定时使用前台窗口句柄

    填写 输入或变量条件 仅:fromHwnd, findChildWindow, child_windows
  • 窗口类名classNameText可选

    要查找窗口的类名(ClassName),为空时不检查此项。

    填写 输入或变量条件 仅:findWindow, top_windows, findChildWindow, child_windows
  • 窗口名称windowNameText可选

    要查找窗口的标题,为空时不检查此项。

    填写 输入或变量条件 仅:findWindow, top_windows, findChildWindow, child_windows
  • 进程名/pidprocIdOrNameText可选

    要查找窗口所属的进程名或pid,为空时不检查此项。

    填写 输入或变量条件 仅:findWindow, top_windows
  • 仅可见窗口onlyVisibleEnum可选
    填写 固定输入条件 仅:top_windows, findWindow默认 default
    未指定默认default
    仅可见窗口1
    所有窗口0
  • 仅名称(标题)不为空的窗口requireTitleBoolean可选
    填写 固定输入条件 仅:top_windows, findWindow默认 true
  • 使用正则匹配窗口类名和标题useRegexBoolean可选
    填写 固定输入条件 仅:findWindow, top_windows, child_windows默认 false
  • 窗口位置包含不可见边框(阴影区域)winRectIncludeInvisibleBorderBoolean可选
    填写 固定输入条件 排除:top_windows, findChildWindow, child_windows默认 false
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否成功

  • 窗口标题outputText

    窗口的标题文字

    条件 排除:top_windows, findChildWindow, child_windows
  • 类名classNameText

    窗口的 Class Name

    条件 排除:top_windows, findChildWindow, child_windows
  • 句柄handleInteger

    窗口的句柄

    条件 排除:top_windows, child_windows
  • 进程IDpidInteger

    窗口所属进程的ID

    条件 排除:top_windows, findChildWindow, child_windows
  • 进程名procNameText

    进程名称

    条件 排除:top_windows, findChildWindow, child_windows
  • 程序路径pathText

    获得的进程路径

    条件 排除:top_windows, findChildWindow, child_windows
  • 父窗口句柄parentInteger
    条件 排除:top_windows, findChildWindow, child_windows
  • 根窗口句柄rootInteger
    条件 排除:top_windows, findChildWindow, child_windows
  • 根所有者窗口句柄rootOwnerInteger
    条件 排除:top_windows, findChildWindow, child_windows
  • 窗口位置rectText

    文本值,格式为:Left,Top,Right,Bottom,Width,Height。

    条件 排除:top_windows, findChildWindow, child_windows
  • 窗口位置(不含尺寸)rectNoSizeText

    文本值,格式为:Left,Top,Right,Bottom。如:0,0,100,100

    条件 排除:top_windows, child_windows
  • 窗口位置(词典值)rectDictDict

    词典值,属性为:Left,Top,Right,Bottom,Width,Height

    条件 排除:top_windows, child_windows
  • 是否置顶isTopmostBoolean
    条件 排除:top_windows, findChildWindow, child_windows
  • 是否可见isVisibleBoolean
    条件 排除:top_windows, findChildWindow, child_windows
  • 显示状态showStateInteger

    1:普通,2:最小化,3:最大化。

    条件 排除:top_windows, findChildWindow, child_windows
  • 不透明度alphaInteger

    窗口的透明度,范围为0-255。0表示全透明

    条件 排除:top_windows, findChildWindow, child_windows
  • 边框颜色borderColorText

    窗口的边框颜色,格式为#RRGGBB,或空字符串表示未设置颜色。(仅支持通过Quicker设置的边框颜色)

    条件 排除:top_windows, findChildWindow, child_windows
  • 所有子窗口allChildWindowsDict

    词典值,Key为窗口句柄,Value为窗口标题

    条件 排除:top_windows, findChildWindow
  • 所有顶层窗口topLevelWindowsDict

    词典值,Key为窗口句柄,Value为窗口标题

    条件 仅:top_windows

概述

先选 目标窗口,其余条件字段会按类型出现。

获取窗口信息/查找窗口

获取指定窗口的标题等信息。
目标窗口
判断哪个窗口的信息
是否成功
-- 选择变量 --
操作是否成功
窗口标题
-- 选择变量 --
窗口的标题文字
类名
-- 选择变量 --
窗口的 Class Name
句柄
-- 选择变量 --
窗口的句柄
进程ID
-- 选择变量 --
窗口所属进程的ID
进程名
-- 选择变量 --
进程名称
程序路径
-- 选择变量 --
获得的进程路径
父窗口句柄
-- 选择变量 --
根窗口句柄
-- 选择变量 --
根所有者窗口句柄
-- 选择变量 --
窗口位置
-- 选择变量 --
文本值,格式为:Left,Top,Right,Bottom,Width,Height。
窗口位置(不含尺寸)
-- 选择变量 --
文本值,格式为:Left,Top,Right,Bottom。如:0,0,100,100
窗口位置(词典值)
-- 选择变量 --
词典值,属性为:Left,Top,Right,Bottom,Width,Height
是否置顶
-- 选择变量 --
是否可见
-- 选择变量 --
显示状态
-- 选择变量 --
1:普通,2:最小化,3:最大化。
不透明度
-- 选择变量 --
窗口的透明度,范围为0-255。0表示全透明
边框颜色
-- 选择变量 --
窗口的边框颜色,格式为#RRGGBB,或空字符串表示未设置颜色。(仅支持通过Quicker设置的边框颜色)
所有子窗口
-- 选择变量 --
词典值,Key为窗口句柄,Value为窗口标题

参数说明

目标窗口

  • 前台窗口:当前活动窗口。
  • 选择一个窗口:运行时让用户点选。
  • 弹出面板前鼠标位置的窗口(可能为子窗口) / 其根窗口
  • 当前鼠标位置的窗口(可能为子窗口) / 其根窗口
  • 句柄指定的窗口:用 窗口句柄hWnd
  • 查找顶层窗口 (单个窗口):按类名、标题、进程搜索。未指定进程时用 Win32 FindWindow,可能找到已隐藏窗口;指定进程时只查可见窗口。
  • 所有顶层窗口:返回句柄→标题词典。
  • 查找子窗口/控件 (单个窗口) / 查找子窗口 (多个窗口)

窗口句柄hWnd:仅句柄指定、查找子窗口时。未指定时用前台窗口句柄。

窗口类名 / 窗口名称:仅查找顶层或子窗口时。为空则不检查该项。

进程名/pid:仅查找顶层窗口时。为空则不检查。

仅可见窗口:未指定 / 仅可见窗口 / 所有窗口。仅查找顶层时显示。

仅名称(标题)不为空的窗口:仅查找顶层时。默认开启。

使用正则匹配窗口类名和标题:查找顶层或多个子窗口时。默认关闭。

窗口位置包含不可见边框(阴影区域):查单个窗口位置时。默认关闭。

失败后停止:失败是否中止动作。默认开启。

输出

  • 是否成功
  • 单个窗口:窗口标题类名句柄进程ID进程名程序路径父窗口句柄根窗口句柄根所有者窗口句柄窗口位置Left,Top,Right,Bottom,Width,Height)、窗口位置(不含尺寸)窗口位置(词典值)是否置顶是否可见显示状态1 普通、2 最小化、3 最大化)、不透明度(0–255)、边框颜色#RRGGBB,仅 Quicker 设置过的边框)、所有子窗口
  • 所有顶层窗口:仅该操作。词典,键为句柄、值为标题。

部分输出在「所有顶层窗口 / 查找子窗口」时不出现,以参数窗为准。

示例

循环等待「另存为」窗口出现:

示例:等待另存为窗口
重复重复10次,循环间隔: ms,中止条件: $$ {found}
获取窗口信息/查找窗口前台窗口
比较文本{winTitle} 包含 另存为 ?
如果/否则判断条件:{found}
提示消息另存为窗口已打开
停止(return)(标记为出错:)
Else
等待时间等待 1000 ms
提示消息没有等到“另存为”窗口打开。

限制与排障

查找不到时先放宽标题/类名,或打开 使用正则匹配窗口类名和标题。隐藏窗口只有在未指定进程、走 FindWindow 时才可能命中。位置数值是否含阴影边框,看 窗口位置包含不可见边框

相关链接

更新于