X11中单击事件的全局鼠标挂钩

时间:2014-12-02 14:11:17

标签: c++ hook x11 hotkeys xserver

我已经阅读了很多关于X11图形系统的信息,并且在没有回答的情况下发现了很多关于这个问题的问题。所以让我再问一下时间。

我需要经典的钩子机制实现(如SetWindowsHookEx)或类似UNIX的操作系统中的任何其他方法 ONLY ONE CONDITION :能够在不阻止原始事件的情况下监听事件 (比如XGrabButton和XUngrabButton)。

P.S。本,这是丹尼拉。我需要帮助! ®

2 个答案:

答案 0 :(得分:1)

我最终抓住了来自Xnee的源代码 - 它允许记录所有输入事件,包括带有非阻塞逻辑的键盘和鼠标。唯一的限制是我必须询问是否有100ms间隔的循环事件,但它对我来说没问题 - 根本没有处理器加载。

答案 1 :(得分:0)

不可能全局(所有事件/所有窗口),除非您读取低级别通信(使用pcap或用代理提供所有数据替换真实xserver)

要获取特定窗口的通知,请更改该窗口的事件掩码。服务器为每个客户端的窗口保留事件掩码的单独副本,并通知对匹配掩码的事件感兴趣的每个客户端。例如,如果从连接中向根窗口事件掩码添加PointerMotion位,当鼠标在根窗口上移动时(因为它是可见的),您将获得指针事件