如何知道焦点窗口的名称/ID
Posted
技术标签:
【中文标题】如何知道焦点窗口的名称/ID【英文标题】:How to know the name/ID of window in focus 【发布时间】:2014-03-04 13:12:30 【问题描述】:如何在 OpenCV 中专门了解焦点窗口的名称/ID。 如果 OpenCV 无法实现,是否有任何事件处理/回调或 windows api 可以实现这一点。 我正在使用 Windows 7 和 8.1。 我想做一些类似(但不限于)的事情:
如果窗口处于焦点状态,并且发生鼠标或按键等事件, 然后更新那个特定的窗口
.
【问题讨论】:
【参考方案1】:正如 Kris 所建议的,window.xml 存在解决方案。使用 windows api 来处理活动窗口:
HWND WINAPI GetActiveWindow(void);
现在使用GetWindowText()
函数提取标题,如果有的话。它可能不是便携式的。其他操作系统应该有类似的api。
【讨论】:
【参考方案2】:首先,我不知道 windows 或任何其他 api 是否可以提供帮助。 我有一个想法,以某种方式截屏,然后使用 opencv 本身进行图像处理。假设焦点窗口将位于顶部且最集中,因此我们可以轻松看到名称。如果有的话,我们可以处理颜色以将焦点窗口与其他窗口分开。并使用 OCR 提取窗口名称。
【讨论】:
这永远不会健壮。为什么不直接使用原生 API 来获取活动窗口呢?以上是关于如何知道焦点窗口的名称/ID的主要内容,如果未能解决你的问题,请参考以下文章