2016-12-09 35 views
0

如果两次点击之间的延迟小于设置的时间,我需要钩住全局鼠标点击并阻止最后一次点击。在X11中挂钩和阻挡全局鼠标

我使用WM_MOUSE_LL钩子为windows编写了它。 我无法为我找到任何解决方案。是否可以在X11中全局阻止鼠标点击?

Windows full code

+0

你想做什么?只是阻止“快速”双击? –

+0

@ I-V,是的,如果我们彼此正确理解 – Inline

+0

我的意思是,如果你试图阻止你的代码运行在同一台机器上的点击(或通过rdp在远程机器上阻止)? –

回答

1

据我所知标准X11协议不允许这样。 XInput 2.0的扩展可能,但我怀疑它..当Windows假设每个程序侦听一个单一的事件队列,以便程序可以拦截一个事件,并防止它被发送到队列其他侦听器,每个X11客户端它自己的独立队列和所有注册对事件感兴趣的客户都会在其队列中获得独立副本。这意味着在正常情况下,错误的程序不可能阻止其他程序运行;但这也意味着,当客户端必须阻止其他客户端时,它必须执行服务器抓取以防止服务器处理任何其他客户端的事件。

这意味着你可以

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

  • 做的输入设备级别。 /dev/input/event<n>给你输入事件。你可以读取那里的按键,并决定是否应该进一步消耗。不幸的是,没有真正的文档,但头文件linux/include/input.h是相当自我解释。