可能的重复:
访问 C 中的击键
监控 Ubuntu 中的键盘按键
我想检测程序中的每个 keydown 和 keyup 事件并为其添加时间戳(是的,我的意思是keydown and keyup不仅仅是按键)以及按下的键。我可以通过使用诸如 GTK 之类的 APi 来做到这一点,但我希望尽可能简单和低级别,以避免影响时间的库的开销以及编写更少的代码。
我已经在谷歌上搜索了一段时间,到目前为止已经找到了大量关于如何在 Windows 上执行此操作的内容,这对我没有帮助,因为我使用的是 Linux 系统,以及如何在 Linux 上检测按键,但是不是 keyup keydown。
谁能告诉我我需要使用什么系统调用、库等才能使用 C++ 命令行程序捕获 Linux 系统上的 keydown 和 keyup 事件?如果您有教程或代码示例的链接,我们将不胜感激。
您可以阅读原始设备,我还没有尝试过,但这篇博客文章看起来很有希望:https://web.archive.org/web/20180108194231/http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node-devinputevent/(是http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from-event-device-node-devinputevent/ 但该网站已离线)
所以本质上你是直接从 /dev/input/* 读取
您可以通过运行来验证它是否有效sudo cat /dev/input/eventX
其中 X 是该目录中列出的事件设备之一(其中之一是您的键盘。我确信有一种很好的方法可以通过编程方式查找哪个设备,但是您可以通过查看 /dev/input 快速找到/by-id/ 或直接从这些符号链接之一读取。)
注意:这将为您提供键盘输入每时每刻,不仅仅是当你的窗口处于焦点状态时..(你的程序甚至不需要在 xterm 中运行,甚至不需要在 pty 中运行)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)