【发布时间】:2015-12-03 12:35:25
【问题描述】:
如果定义的子窗口已打开并在前台,我想检查外部应用程序。
如果我使用 winapi GetForegroundWindow 检查它,我会得到主窗口的句柄,而不是实际的活动子窗口。
我可以通过与标题匹配的所有窗口使用 winapi EnumWindows 进行枚举,但这只会提供子窗口已打开的信息,但如果它在前台则不会。
如何合并两者?
【问题讨论】:
-
通过definition,活动窗口始终是顶级窗口(就像前台窗口一样)。 “实际的活动子窗口” 不存在。你真正在寻找什么?此外,这听起来像是一个 XY 问题。为什么你需要知道?您是否正在尝试实现某种脆弱的 UI 自动化?
-
我看不出这些信息对解决问题有什么帮助,但你去吧:有一个旧的 com 应用程序,我不允许对其进行更改。这就是为什么我需要在定义的控件中跟踪一些输入。
-
该信息有助于改进您的问题。正如所写,它要求的是不存在的东西。该信息也很有用,因为它可以帮助我们防止您使用方形轮子的汽车。如果您想观察/自动化 UI,请使用 UI Automation。使用 UI 自动化,您不需要想要的东西。