如何在X11中全局捕获每一个鼠标点击事件?

问题描述 投票:7回答:3

我想在X11中捕获每一个鼠标点击事件,并将它们传递给我的C++应用程序。我不只是想捕捉在主窗口上面的点击,而是想捕捉每一个不考虑主窗口的点击。看起来我可以使用XGrabPointer轻松实现这个目标。然而,我想让所有的事情都表现得好像我从来没有抓取过事件一样。也就是说,我想让事件继续正常地传递给其他客户,我只是想成为第一个窥视事件的人。我不希望事件被 "吃掉"。

在Google上搜索这个问题时,似乎有几个解决方案,但显然所有的解决方案都已经被破坏或废弃了。最有希望的是Xrecord + Xtest,但似乎也已经废弃了。

现在看来应该是用Xinput2来做,但是关于如何使用的信息真的很少。希望能得到一些启示。

c++ linux input mouse x11
3个回答
2
投票

今天有点晚了,但你还是要看看 "xkey "应用程序[1],它可以窥探所有打开窗口的所有按键事件。 如果你这样做,你也会想观察新窗口的创建。

[1] http:/www.stllinux.orgmeeting_notes19970619xkey.html


1
投票

我知道kcolorchooser是用C语言编写的。

也许值得参考。http:/www.kde.orgapplicationsgraphicskcolorchooserdevelopment


0
投票

也许你应该看看 xev 代码:它捕捉到了每一个可以想象的X事件。

© www.soinside.com 2019 - 2024. All rights reserved.