3

是否有任何用 C++ 编写的 Linux 库,可以为我的应用程序注册全局热键?谢谢。

4

2 回答 2

8

您必须提供更多信息。

在 Gnome 中,全局功能因窗口管理器而异。Metacity 具有可配置的全局快捷方式,Compiz 和 Sawfish 也是如此,它们的配置都不同。 Xhotkeys也可以用于相同的功能。但是,这些都仅限于启动应用程序。

在 KDE 应用程序框架中,KAction可以注册在程序内部执行操作的全局快捷方式。这些实际上是由 kded(按需启动)中的一个模块处理的,因此它们甚至可以在 KDE 桌面环境之外工作。

如果您不使用 KDE 框架,但仍在使用 X11,则可以使用 xlib API在根窗口调用XGrabKey 。

对于在 X 之外工作的快捷方式,只要您在 2.6 内核上以 root 身份运行(或许可更改权限),您就可以直接打开/dev/input/event*,并轮询所需的键事件。

于 2009-06-26T19:51:32.183 回答
3

I wrote a simple C library a while back to make registering global X11 hotkeys a little less painful. There are some examples with the code. You can get it at:

https://github.com/jwmcode/xhklib/

于 2012-05-19T15:29:39.627 回答