检测Linux C 上的键盘和密钥事件



可能的重复:
访问C
中的击键 监视Ubuntu中的键盘键

我想在程序中检测和时间戳每个键盘和键盘事件(是的,我的意思是 keydown keyup ,而不仅仅是键盘)以及按下哪个键。我可以通过使用GTK等API来做到这一点,但是我想获得尽可能简单和低的级别,以避免从影响时间的库中开销,并编写更少的代码。

我已经谷歌搜索了一段时间,到目前为止,我发现了很多关于如何在Windows上进行操作的东西,这对我没有帮助,因为我使用Linux系统,以及如何检测按键按下linux,但不是钥匙键。

谁能告诉我什么Syscall,Library等。我需要使用C 中的命令行程序在Linux系统上捕获键盘和键盘事件?而且,如果您有指向教程或代码示例的链接,将非常感谢。

您可以读取原始设备,我没有尝试过,但是这篇博客文章看起来很有希望:https://web.archive.org/web/2018010194231/http://http:///wwww。键盘输入from-event-device-node-devinputevent/,但该站点脱机)

本质上,您是直接从/dev/input/*

直接阅读的

您可以通过运行sudo cat /dev/input/eventX来验证这项工作,其中X是该目录中列出的事件设备之一(其中之一将是您的键盘。.我敢肯定有一种很好的方法可以在程序上找到哪一个,但是您可以通过查看/dev/input/by-id/只能直接从其中一个符号链接中读取。)


注意:这将使您始终为您提供键盘输入,不仅是当您的窗口焦点时..(您的程序甚至不需要在Xterm中运行,甚至不需要运行这方面的PTY)。

实际上,如果没有库,您将无法执行此操作。如果您想要的东西很少,我建议您使用ncurses。如果您绝对必须在没有库的情况下做到这一点,请查看Ncurs如何实现它。当然,它会非常复杂。

我会考虑查看OIS(面向对象的输入系统)库。它非常易于使用,具有良好的OO设计,并且是跨平台。有关教程和一些代码,请查看http://www.ogre3d.org/tikiwiki/tikiwiki/tiki-index.php?page= using ois。

相关内容

  • 没有找到相关文章

最新更新