我想在X11中捕获每一个鼠标点击事件,并将它们传递给我的C++应用程序。我不只是想捕捉在主窗口上面的点击,而是想捕捉每一个不考虑主窗口的点击。看起来我可以使用XGrabPointer轻松实现这个目标。然而,我想让所有的事情都表现得好像我从来没有抓取过事件一样。也就是说,我想让事件继续正常地传递给其他客户,我只是想成为第一个窥视事件的人。我不希望事件被 "吃掉"。
在Google上搜索这个问题时,似乎有几个解决方案,但显然所有的解决方案都已经被破坏或废弃了。最有希望的是Xrecord + Xtest,但似乎也已经废弃了。
现在看来应该是用Xinput2来做,但是关于如何使用的信息真的很少。希望能得到一些启示。
今天有点晚了,但你还是要看看 "xkey "应用程序[1],它可以窥探所有打开窗口的所有按键事件。 如果你这样做,你也会想观察新窗口的创建。
我知道kcolorchooser是用C语言编写的。
也许值得参考。http:/www.kde.orgapplicationsgraphicskcolorchooserdevelopment
也许你应该看看 xev
代码:它捕捉到了每一个可以想象的X事件。