C++ X11中的全局鼠标钩子单击事件

C++ X11中的全局鼠标钩子单击事件,c++,hook,x11,hotkeys,xserver,C++,Hook,X11,Hotkeys,Xserver,我已经阅读了很多关于X11图形系统的信息,发现了很多关于这个问题的问题没有答案。让我再问你一次 我需要钩子机制的经典实现(如SetWindowsHookEx)或类似UNIX的操作系统中的任何其他方法,只有一个条件:能够侦听事件而不阻止原始事件(如XGrabbuton和Xungrabbuton do) 本,我是丹妮拉。我需要帮助!®不可能全局执行(所有事件/所有窗口),除非您读取低级通信(使用pcap或将real xserver替换为提供所有数据的代理) 若要获取特定窗口的通知,请更改该窗口的事件

我已经阅读了很多关于X11图形系统的信息,发现了很多关于这个问题的问题没有答案。让我再问你一次

我需要钩子机制的经典实现(如SetWindowsHookEx)或类似UNIX的操作系统中的任何其他方法,只有一个条件:能够侦听事件而不阻止原始事件(如XGrabbuton和Xungrabbuton do)

本,我是丹妮拉。我需要帮助!®

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


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

我通过从中获取源代码而结束-它允许记录所有输入事件,包括具有非阻塞逻辑的键盘和鼠标。唯一的限制是,我必须询问在100ms间隔的循环中是否有任何事件,但对我来说没关系——根本没有处理器加载