繁体   English   中英

在X11中钩住并阻止全局鼠标

[英]Hook and block globally mouse in X11

如果两次单击之间的延迟小于设置的时间,则需要全局挂接鼠标单击并阻止最后一次单击。

我使用WM_MOUSE_LL钩子为Windows编写了它。 我找不到适合我的解决方案。 甚至有可能在X11中全局阻止鼠标单击?

Windows完整代码

据我所知,标准的X11协议不允许这样做。 XInput 2.0扩展可能会,但我对此表示怀疑。.尽管Windows假定每个程序都侦听一个事件队列,以便程序可以拦截一个事件并防止事件沿着队列发送给其他侦听器,但每个X11客户端都有它自己的独立队列,并且所有注册对事件感兴趣的客户端都会在其队列中接收到它的独立副本。 这意味着在正常情况下,错误的程序不可能阻止其他程序运行; 但是这也意味着,在某个客户端必须阻止其他客户端的情况下,它必须进行服务器抢夺,以防止该服务器处理任何其他客户端的事件。

这意味着你可以

  • 使用X服务器代理(不会很难,但会慢很多)

要么

  • 在输入设备级别执行此操作。 /dev/input/event<n>给您输入事件。 您可以在此处读取按键并决定是否应进一步传播这些按键。 不幸的是,没有真正的文档,但是头文件linux/include/input.h完全可以解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM