【发布时间】:2011-03-10 16:10:38
【问题描述】:
我正在尝试使用 Xlib 编写一个跟踪活动窗口何时更改的程序。我很难找出最好的方法来做到这一点。到目前为止,这些是我的想法:
- 每隔一秒使用 _NET_ACTIVE_WINDOW 获取活动窗口,如果它已更改,则运行事件的相关代码。
- 获取所有窗口的列表并在事件中监听它们的焦点。不过,我必须弄清楚如何保持打开窗口的最新列表。
他们是更简单/更好的方法吗?我是 Xlib 编程新手。
【问题讨论】:
-
监听所有焦点事件以及注册所有窗口的所有处理程序似乎非常昂贵。我想知道,事实上,一般听 PointerMove 然后从事件处理程序调用
XGetInputFocus()以找出移动时谁拥有它会不会减少开销。这必须有多实时?如果答案是“一秒钟就好”,那么轮询方法似乎是最好的。 -
不一定是实时的,几秒钟内就可以了。我将尝试我的第一种方法。谢谢 FrankH。