-->

Linux下C ++ [复制]检测的keydown和KeyUp事件(Detecting keydow

2019-07-01 20:01发布

可能重复:
在C访问击键
监控键盘键在Ubuntu

我想与按下了哪个键沿检测和时间戳在程序中的每个的keydown和keyup事件(是的,我的意思是KeyDownKEYUP不仅仅是按键)。 我可以通过使用API​​,如GTK做到这一点,但我想,以避免影响时间以及写更少的代码库的开销,因为简单和低的水平越好。

我一直在谷歌上搜索了一会儿,迄今已发现一吨的关于如何做到这一点在Windows,因为我使用的是Linux系统,以及如何检测Linux上的按键不帮我的东西,但不KEYUP KEYDOWN。

谁能告诉我,我需要为了使用捕获Linux系统上的keydown和KeyUp事件与C ++中的命令行程序,什么系统调用,库等? 如果你有一个链接到一个教程或代码示例这将是最赞赏。

Answer 1:

您可以阅读原始设备,我没有带试过,但这个博客帖子看起来很有希望: http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node- devinputevent /

所以基本上你直接从/ dev /输入读取/ *

您可以验证这是通过运行sudo cat /dev/input/eventX其中X是在该目录中列出的事件设备之一(其中之一将是你的键盘。我敢肯定有发现其中一个好办法编程,但可以很快通过观察找出的/ dev /输入/ ID别/或直接从这些符号链接的一个只是阅读。)


注意:这将让你的键盘输入的时候 ,不只是当你的窗口处于焦点。(你的程序甚至不需要在一个X上运行,甚至为此事PTY)。



Answer 2:

实际上,你不会是能够做到这一点没有一个图书馆。 如果你想要的东西,有非常小的开销,我会建议ncurses的 。 如果你绝对必须做没有图书馆,看的ncurses如何实现它。 它将,当然,是非常复杂的。



Answer 3:

我会考虑看看OIS(面向对象输入系统)库。 这是很容易使用,具有良好的面向对象设计,它是跨平台的。 对于教程和一些代码来看看http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Using+OIS 。



文章来源: Detecting keydown and keyup events on Linux C++ [duplicate]