basic-control_observe 公开

__NULL__ 更新于 4天10小时前 | 0 | (0) | 1
分类
审核状态:已发布 审核记录
点赞
暂无
更多信息
分享人 __NULL__
分享时间 4天10小时前
最后更新 4天10小时前
修订版本 3
子程序大小 29.6 KB
Quicker版本 1.45.5.0

介绍

[QASP]感知目标窗口的控件树,并可同时返回窗口截图。

basic-control · observe(带截图)

感知目标窗口的控件树,并可同时返回窗口截图。


能做什么

  • 遍历指定窗口的 UIA 控件树,为每个控件分配临时引用 e1 / e2 / ...,供 click / type 直接使用
  • 支持 from_ref 从已有引用的子树往下深挖,避免每次全窗口遍历
  • 支持 screenshot 对目标窗口截图,即使窗口被遮挡、不在前台也能截,返回 PNG Data URL

典型场景

场景用法
首次看某窗口有哪些可操作元素observe(window=句柄, depth=3)
控件藏在深层(如 Ribbon 按钮)先 observe 拿到锚点 ref,再 observe(from_ref="e8", depth=6)
需要"看"界面长什么样observe(window=句柄, screenshot=true)
控件读不到、需要人眼确认截图 + 树一起看

关键参数

参数说明
window窗口句柄或标题关键字;留空表示前台窗口。截图时必须显式指定
depth遍历深度,默认 3,范围 1–8
max_elements最多返回的控件数量,默认 200
from_ref从某个已有 ref 往下展开,深度相对于该节点
screenshottrue 时返回窗口截图(PNG Data URL)

截图能力说明

  • 基于 PrintWindow,直接从窗口 DC 渲染,不依赖前台、不怕遮挡
  • 窗口最小化时无法截取,会返回错误
  • GPU 直绘的窗口(SolidWorks 3D 视口、游戏、部分硬件加速应用)可能返回黑屏,此时只能改用其它方式

返回示例(控件树)

{
  "ok": true,
  "action": "observe",
  "windowTitle": "工作簿1 - Excel",
  "rootHandle": 69352,
  "elementCount": 29,
  "tree": { "ref": "e1", "name": "工作簿1 - Excel", "type": "Window", "children": [ ... ] }
}

返回示例(截图)

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...

可直接放进 <img src="...">、Markdown 或前端渲染。


配合使用

list_windows  →  找到目标窗口句柄
observe       →  感知控件树 / 深挖子树 / 截图
find          →  按名称或类型精确找到控件
click / type  →  用 ref 操作

定位:basic-control 是通用兜底层,对所有暴露 UIA 的 Windows 桌面软件都适用,不依赖特定软件的专用接口。遇到重度自绘界面(MFC、游戏引擎)读不到细粒度控件时,可回退到快捷键 / 命令搜索 / 坐标点击。


子程序的参数

输入
data Text
输出
result Text

最近更新

修订版本 更新时间 制品 更新说明
3 4天10小时前 V1 文档
2 4天10小时前 V1 分享信息
1 4天10小时前 V1

最近讨论

暂无讨论