我正在使用gtk编写程序。该程序所做的是监视用户输入的击键并播放声音。我的问题是,当窗口没有聚焦时,如何捕捉按键事件?我打算让我的程序保留在托盘图标中,所以我想知道如何从那里抓住任何按键事件。感谢
编辑: 我终于找到了一种方法 - XTest扩展,我从程序'xmacro'中找到了一段代码片段。 你可以在这里看到我的实现: http://github.com/Aitjcize/Qwertickle/blob/master/src/qwertickle.c
顺便说一下,它还有很多车,也许有人可以帮帮我吗? :)答案 0 :(得分:3)
Matt Joiner说,
这种事情在Linux中并不那么容易。
并且不幸的是GTK +无法做到这种魔力。
你应该看看XEvIE - X事件拦截扩展 - 这将使你的工作更轻松。
根据{{3}}的建议XEvIE是一个X扩展,提供允许用户拦截键盘/鼠标事件的功能。
,另一种方法是使用X11中的this guy / XGrabKey()。我相信XUngrabKey()会说明如何正确使用它。
答案 1 :(得分:0)
有一个名为xbindkeys的程序可以绑定X中的鼠标和键盘键来启动shell命令。您可以使用它来向您的程序发送命令,或查看源代码以查看其完成情况:xbindkeys
你也可以直接打开/ dev / input / eventX和read()从它到一个input_event结构,但这有点讨厌,因为你需要拥有适当的权限(通常是root,或用chmod更改)< / p>