在Linux终端应用程序中接收按键和键释放事件?

问题描述 投票:20回答:3

我想写一个简单的C程序,它将根据“key down”和“key up”事件执行不同的操作。该程序将从rxvt内部运行。

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

linux terminal keypress ncurses tty
3个回答
9
投票

以下链接可能对使用键盘原始模式有一些帮助,这将使您可以访问键盘事件而不仅仅是键发布。

  1. 这个Linux Journal article
  2. 这个article在SourceForge上
  3. 当这一切都变坏时,这个HOWTO

原始模式的缺点是您必须自己从扫描代码转换为字符。


5
投票

这在一般情况下不起作用。 ANSI终端(所有模拟器从中下降)仅表示关键的“按下”事件。他们不会独立记录下来/上升事件。

如果您需要低级键盘事件访问,适当的环境实际上是一个GUI程序。即使是Web应用程序也可以比终端更清晰地访问关键事件。


3
投票

我认为ncurses不会起作用。 Basilevs提供的链接提供了关于“向上箭头”键和“向下箭头”键的说明,而不是关键的按键和释放。

© www.soinside.com 2019 - 2024. All rights reserved.