gpt4 book ai didi

c++ - 在 X11 中全局 Hook 和阻止鼠标

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:56 30 4
gpt4 key购买 nike

如果两次点击之间的延迟小于设置值,我需要全局 Hook 鼠标点击并阻止最后一次点击。

我使用 WM_MOUSE_LL 钩子(Hook)为 windows 编写了它。我无法为我找到任何解决方案。甚至可以在 X11 中全局阻止鼠标单击吗?

Windows full code

最佳答案

据我所知,标准 X11 协议(protocol)不允许这样做。 XInput 2.0 扩展可能,但我对此表示怀疑。虽然 Windows 假定每个程序都监听一个事件队列,以便程序可以拦截事件并防止它被发送到队列中的其他监听器,但每个 X11 客户端都有它自己的独立队列和所有对事件感兴趣的客户端都会在其队列中收到该事件的独立拷贝。这意味着在正常情况下,一个错误的程序不可能阻止其他程序运行;但这也意味着,对于客户端必须阻止其他客户端的那些时间,它必须进行服务器抓取以防止服务器为任何其他客户端处理事件。

这意味着你可以

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

  • 在输入设备层面进行。 /dev/input/event<n>给你输入事件。您可以在那里读取按键并决定是否应该进一步传播它们。不幸的是,没有真正的文档,但是头文件 linux/include/input.h不言自明。

关于c++ - 在 X11 中全局 Hook 和阻止鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061705/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com