获取窗口的所有 ui 元素的最佳方法是什么?

Waz*_*aps 5 user-interface winapi ui-automation

我想获得一个窗口的所有 UI 元素的列表,以某种方式我可以在另一台 PC 上重新创建它们?目前我专注于 Windows,但多平台的答案将不胜感激。谢谢!(我在下面的意思)

在此处输入图片说明

Adr*_*thy 5

有几种方法可以走。

选项 1:如果窗口是传统窗口,其中 UI 元素是子窗口(而不是无窗口控件),则您可以使用GetWindowEnumChildWindows来迭代给定窗口中的 UI 元素。然后,您必须检查这些窗口的属性,例如窗口过程、窗口样式和窗口文本,以构建您建议的列表。您可能可以使这项工作适用于所有标准控件。问题是让它足够通用以处理所有事情。许多应用程序都具有您的代码无法识别的自定义控件类型,或者可能以不明显的方式对它们进行布局。您也将无法处理使用无窗口控件的窗口。

选项 2:您可以使用UI 自动化来遍历 UI 控件树。这就是屏​​幕阅读器等辅助技术与应用程序交互的方式。