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

时间:2014-05-25 15:07:49

标签: winapi user-interface ui-automation

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

enter image description here

1 个答案:

答案 0 :(得分:3)

有几种方法可以去。

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

选项2:您可以使用UI Automation遍历UI控件树。这就是屏​​幕阅读器等可访问性技术与应用程序交互的方式。