接收按键和键释放事件在Linux终端应用程序?(Receiving key press and ke

2019-07-17 16:41发布

我想编写一个简单的C程序将执行基于两个“键按下”和“键向上”事件不同的动作。 这项计划将从内部运行的rxvt 。

我应该使用什么库或机制来访问这两个按键和释放? 这是真的读/dev/tty将只提供关键的版本? 这也适用于的termcap,terminfo的,ncurses的,和俚语? 有没有办法从终端应用程序中实现这一目标?

Answer 1:

下面的链接可能会有一些帮助的使用键盘原始模式,这将给你访问键盘事件,而不仅仅是按键松开。

  1. 这Linux杂志文章
  2. 该文章在SourceForge
  3. 而这个HOWTO的时,一切都坏

原始模式确实有,你必须做你自己的转换从扫描码字符虽然缺点。



Answer 2:

这不会在一般情况下工作。 ANSI终端(所有的模拟器下降)代表键“按”唯一事件。 他们没有单独记录下/上事件。

如果你需要低级别的键盘事件访问,适当的环境确实是一个GUI程序。 即使是一个Web应用程序将不得不比终端的关键事件吸尘器访问。



Answer 3:

我不认为会ncurses的工作。 链接Basilevs提供了有关“向上箭头”键和“向下箭头”键,而不是一个按键和释放的会谈。



文章来源: Receiving key press and key release events in Linux terminal applications?