【发布时间】:2014-05-25 15:07:48
【问题描述】:
我想获取一个窗口的所有 UI 元素的列表,以某种方式我可以在另一台 PC 上重新创建它们?目前我专注于 Windows,但多平台的答案将不胜感激。谢谢! (下面是我的意思)
【问题讨论】:
标签: winapi user-interface ui-automation
我想获取一个窗口的所有 UI 元素的列表,以某种方式我可以在另一台 PC 上重新创建它们?目前我专注于 Windows,但多平台的答案将不胜感激。谢谢! (下面是我的意思)
【问题讨论】:
标签: winapi user-interface ui-automation
有几种方法可以去。
选项 1:如果窗口是传统窗口,其中 UI 元素是子窗口(而不是无窗口控件),那么您可以使用 GetWindow 或 EnumChildWindows 遍历给定窗口中的 UI 元素。然后,您必须检查这些窗口的属性,如窗口过程、窗口样式和窗口文本,以按照您的建议构建一个列表。您可能可以为所有标准控件使用此功能。问题是使它足够通用以处理所有事情。许多应用程序具有您的代码无法识别的自定义控件类型,或者它可能以不明显的方式布置它们。您也将无法处理使用无窗口控件的窗口。
选项 2:您可以使用 UI Automation 遍历 UI 控件树。这就是屏幕阅读器等无障碍技术与应用程序交互的方式。
【讨论】: