挂钩并阻止X11中的全球鼠标

Hook and block globally mouse in X11

本文关键字:鼠标 X11      更新时间:2023-10-16

我需要挂钩全球鼠标单击,如果两次点击之间的延迟小于设置的延迟。

我使用WM_MOUSE_LL钩为Windows编写了它。我找不到任何解决方案。甚至有可能阻止鼠标单击x11?

Windows完整代码

据我所知,

不允许这样做。XINPUT 2.0扩展程序可能会,但我怀疑..虽然Windows假定每个程序都会倾听单个事件队列,以便程序可以拦截事件并防止将其发送给其他侦听器,但每个X11客户端都有它自己的独立队列和在活动中注册权益的所有客户在其队列中收到了独立的副本。这意味着在正常情况下,错误的程序不可能阻止其他程序运行。但这也意味着,对于客户必须阻止其他客户端时,它必须抓取服务器以防止服务器处理任何其他客户端的事件。

这意味着您可以

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

  • 在输入设备级别上进行。/dev/input/event<n>给您输入事件。您可以阅读其中的按键,并决定是否应该进一步消耗它们。不幸的是,没有真正的文档,但是标题文件linux/include/input.h是自我解释的。