Windows系统 “进程、线程、窗口、窗口消息“ 分析工具:Accessibility Insights、spy、Inspect

1、Accessibility Insights

官网:https://accessibilityinsights.io/
文档:https://accessibilityinsights.io/docs/web/overview/
Github:https://github.com/microsoft/accessibility-insights-windows

Windows 官方推荐的辅助工具。用来查看窗口控件的信息,也可用于web。帮助查找和修复 Windows 应用程序中的辅助功能问题。比老工具 inspect 和 UI spy 功能更多、操作更方便。

  • 适用于Chrome和新的微软Edge的浏览器扩展,用于测试网页和Web应用程序的可访问性
  • 用于测试Windows应用程序可访问性的Windows桌面工具
  • 通过可视化快速发现可访问性错误

For Web

For Windows

Accessibility Insights for Windows 可帮助开发人员查找和修复Windows应用程序中的辅助功能问题。该工具支持三种主要方案:

  • Live Inspect () 允许开发人员验证应用中的元素是否具有正确的 UI 自动化属性,只需将鼠标悬停在元素上或将键盘焦点设置在该元素上即可。元素就会显示在UIA树中。选择属性视图,查看与控件类型相关的属性、值、自定义属性。
  • FastPass 是一个轻量级的两步流程,可帮助开发人员在不到五分钟的时间内识别常见的、可访问性问题。自动检查 - 该工具自动检查是否符合 60 多项可访问性要求。
  • 通过故障排除,可以诊断和修复特定的辅助功能问题:查看控件支持的模式,并调用关联的 UI 方法,以查看元素是否正确响应用户输入。记录应用程序事件以验证您的应用是否正在生成预期事件。使用内置对比度检查器来识别对比度问题并选择提供足够对比度的颜色。

默认情况下 Windows 的 Accessibility Insights 无法访问使用管理权限运行的应用程序。下载安装后,以管理员身份运行 Accessibility Insights for Windows。或者为 Accessibility Insights for Windows 启用 UIAccess。(将影响 Accessibility Insights for Windows 的所有未来会话。

以管理员身份打开命令提示符。
导航到存储 AccessibilityInsights.exe 文件的目录。例如,输入以下命令:
cd C:\Program Files (x86)\AccessibilityInsights\1.1
从安装 Accessibility Insights for Windows 的目录运行UIAccess.cmd启用。
例如,输入命令:UIAccess.cmd Enable

2、Spy++

Spy++ 简介

官网简介:https://learn.microsoft.com/zh-cn/visualstudio/debugger/introducing-spy-increment
spy++中文使用手册:https://pan.baidu.com/s/1NtLQMP1odHDAla4VH8m9Mg 提取码:294c

spy++ 是微软 Visual Studio 编译器自带的一款工具。它可以 "显示、查看、搜索" 系统对象 (进程、线程、窗口、窗口消息) 关系的图形树。找到窗口所属的应用程序主要功能:

Spy++ 有两个版本

  • Spy++ (spyxx.exe),用于显示发送到在 32 位进程中运行的窗口的消息。
  • Spy++(64 位)(spyxx_amd64.exe),用于显示发送到在 64 位进程中运行的窗口的消息。 

下载

百度网盘:http://pan.baidu.com/s/1skMJUkH
不同版本的 spy++下载:https://github.com/westoncampbell/SpyPlusPlus

通过 Visual Studio 启动 Spy++ 工具(菜单"Tools" --> "Spy++") 。

打开 spy++

简单 使用

  • (1)可以用来查询一个不知道从哪里弹出来的广告窗口是哪个进程搞的鬼……然后干掉
  • (2)枚举所有窗口,查看父子关系,搜索某个窗口是否存在
  • (3)查询一个窗口(包括隐藏窗口)的属性,包括标题、类名、位置、进程线程
  • (4)通过分析其他软件的窗口消息,辅助研究其内部实现原理
  • (5)分析某窗口的消息参数,给其发送冒充消息,以实现特殊的功能 ( 比如模拟挂,模拟 发送消息 )

示例:

  • 1,默认界面 可查看所有顶层窗口,展开可显示子窗口。
  • 2,随便选择一个窗口,右键 ---> 消息,可查看该窗口的实时消息。
  • 3,点击 "突出显示" 后该窗口的边界会闪烁几次,让你轻易地找到它的位置。

点击 "属性" 可以查看 "属性检查器" 窗口,关于该窗口的大小位置坐标、样式(含扩展样式)、窗口句柄(含父窗口句柄等)、所属类(包括窗口类名、实例句柄、图标、光标句柄等信息)、进程(包含进程ID和线程ID)信息就一览无余。

两个 "望远镜" 按钮都可以进行搜索

  • 第1个搜索出来默认查看窗口属性。

  • 第2个搜索出来后,是在窗口列表中直接定位到该窗口显示。

查看窗口的消息时,可以设置一些条件和格式。可以设置是否查看父窗口、子窗口、同一进程、同一线程、系统中所有窗口的消息。

可以设置哪些消息类型。(“消息选项”界面第2个TAB页“消息”)

可以设置输出哪些内容。(“消息选项”界面第3个TAB页“输出”)

查找 流氓 软件

打开 Spy++ ---> 工具栏 ---> "望远镜" 按钮 ---> 拖动 "瞄准镜" 到相应的浮动窗口上后松开,这时 "句柄" 就自动填充上了,然后点 "确定"。

"属性检查器" 中选择 "类" 选项卡,就会看到 "类名",已经基本能看出是哪个程序了。

选择 "进程" 选项卡,点击 "进程/线程" 的代码,还可以看到更加确切的信息

如果你不确定这是什么软件,复制模块名直接 bing 进行搜索。

热键占用 检测

打开Spy++,菜单栏 ---> 监视 ---> 日志消息(log message)

目的是保证拦截到当前Windows系统中的所有窗体的有关消息。进入message页签,筛选热键消息

保存配置后,会看到界面有一个空白窗口,然后按下快捷键,会发现窗口中会出现对应的热键消息

按下快捷键时,spy++就会捕获到,右键该条消息,查看该热键是由哪个程序捕获的

3、Inspect.exe

inspect.exe:https://learn.microsoft.com/zh-cn/windows/win32/winauto/inspect-objects

"Inspect" 是一个旧工具。 微软现在推荐使用 Accessibility Insights 

“检查”(Inspect.exe) 是一种基于 Windows 的工具,它可以选择任何 UI 元素并查看其辅助功能数据。 可以查看 Microsoft UI 自动化属性和控件模式以及 Microsoft Active Accessibility (MSAA) 属性。 “检查”还可以测试 UI 自动化树中自动化元素的导航结构以及 Microsoft Active Accessibility 层次结构中的可访问对象。

检查”窗口有多个主要部分:

  • 标题栏。 显示“检查”窗口句柄 (HWND)。
  • 菜单栏。 提供对“检查”功能的访问。
  • 工具栏。 提供对“检查”功能的访问。
  • 树状视图。 将 UI 元素的分层结构呈现为树视图控件,可用于在元素之间导航。
  • 数据视图。 显示所选 UI 元素的所有公开辅助功能属性。

菜单栏中提供的命令也可以在工具栏中使用。 下图显示了“检查”查询记事本中的“编辑”菜单元素的 UI 自动化属性。

启动 “检查” 时,树视图会显示元素层次结构中当前所选 UI 元素的位置,而数据视图显示所选 UI 元素的属性信息。 可以导航 UI 以查看有关 UI 中每个元素的辅助功能信息。 默认情况下,“检查”会跟踪键盘或鼠标焦点。 当焦点发生更改时,数据视图会使用具有焦点的元素的属性信息进行更新。

若要在 UI 元素之间导航,可以使用以下任一元素:

  • 鼠标。
  • 键盘。
  • 树视图中的树视图控件。
  • 导航”菜单中的导航选项。
  • 工具栏中的导航选项。

最后三个选项使你能够导航 UI 的树层次结构。 此树的结构在 UI 自动化和 Microsoft Active Accessibility 模式之间可能略有不同。

配置属性设置,请执行以下步骤:

  1. 从“选项”菜单中,选择“设置”,或从工具栏中选择“显示设置对话框”。
  2. 在“在主窗口中显示”列表中,选择要显示在“检查”的数据视图中的属性。
  3. 在“在信息工具提示中显示”列表中,选择要显示在工具提示中的属性。
  4. 若要查看 UI 元素可能不支持的属性,请选择“显示不支持的属性”。
  5. 选择“确定”,保存所做更改。

若要配置查看选项,可以在“选项”菜单或工具栏中选择以下查看选项。

选中此选项后检查”执行此操作
总在最前面显示在屏幕上的任何其他窗口的顶部。
MSAA 模式显示 Microsoft Active Accessibility 属性信息。
UI 自动化模式显示 UI 自动化属性信息。
可见的仅 Windows 视图仅在 MSAA 模式下可用。
原始视图在树视图中显示 UI 自动化树或 MSAA 树的原始视图
控件视图在树视图中显示 UI 自动化树的控件视图。 仅在 UI 自动化模式下可用。
内容视图在树视图中显示 UI 自动化树的内容视图。 仅在 UI 自动化模式下可用
活动悬停工具栏在鼠标悬停时激活工具栏按钮,而无需单击鼠标。
出错时发出蜂鸣声在 UI 自动化或 MSAA 操作期间检测到错误时发出蜂鸣声。
SPI_SCREENREADER 标志假定存在屏幕阅读器。 此选项指示应用程序应以文本方式提供信息,而不是以图形方式提供信息。 不应仅仅因为存在屏幕阅读器而设置此标志。
显示突出显示矩形突出显示具有焦点的元素周围的矩形。
显示插入点突出显示突出显示插入符号。 仅在 MSAA 模式下可用。
显示信息工具提示在工具提示中显示属性信息。
监视焦点跟随键盘焦点。 选中后,将安装异步焦点事件挂钩,并将插入点移动到具有焦点的元素的左上角。 此操作会导致“检查”在大约一秒钟内刷新其属性。
监视插入点跟随插入点。 仅在 MSAA 模式下可用。
监视光标跟随光标。
监视工具提示跟随工具提示。
显示树显示树视图。

与 UI 元素交互,请执行以下步骤:

  1. 打开“检查”和要测试的应用程序。
  2. 选择要与之交互的 UI 元素。
  3. 从“操作”菜单或工具栏中,选择要调用的 Windows 自动化方法对应的操作。

操作”菜单包含“刷新”和“焦点”项,以及因选择 UI 自动化模式还是 MSAA 模式而变化的其他项。 在 UI 自动化模式下,其他项反映当前所选 UI 元素支持的控件模式。 在 MSAA 模式下,其他项始终包含以下操作:

操作说明
刷新刷新用户界面。 在 MSAA 和 UI 自动化模式下可用。
默认操作执行元素的默认操作。
侧重点设置对元素的焦点。 在 MSAA 和 UI 自动化模式下可用。
选择选择元素。
扩展选择扩展元素的选择,以包括第一个选定元素和当前元素之间的所有元素。
添加到所选内容选择当前元素,例如列表项。
从所选内容中删除从所选内容中删除当前元素。
SetAccValue将元素的 Microsoft Active Accessibility 值设置为指定的字符串。
焦点子级导航到当前具有焦点的元素的子级。
光标处的 HitTest导航到鼠标光标指定的元素的子级。
HitTest...打开“HitTest”对话框。

初识 UI 自动化 (inspect.exe + uiautomation)

https://juejin.cn/post/7088875711099830308

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值