【发布时间】:2017-02-12 08:54:06
【问题描述】:
根据MSDN,winAPIWindowFromPoint这样的函数不会返回所有顶层窗口(至少跳过隐藏和禁用),然后我们需要使用更灵活的函数比如ChildWindowFromPoint。
但是,最后一个函数不仅可以返回窗口,还可以获取任何子控件句柄。
所以我的问题是我应该如何区分我拥有其句柄的对象的实际类型,它是窗口、按钮、复选框..等等。
当我试图“定义”什么是 Window\Form 来手动检查它(比如它是否有标题栏)时,不同对象之间的边界真的很模糊。
获取类名当然不是一种选择,因为一般来说它们是非常随意的。
最后我发现 .Net Framework 中的 Microsoft 自动化 UI 是如何区分对象的,有什么线索是如何做到的吗?似乎需要实现一个复杂的机制,它会比较许多参数来验证它的真实性,但是 AUI 怎么这么确定它找到了什么?
【问题讨论】:
标签: c# windows winapi ui-automation