25

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

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

4

3 回答 3

12

以下链接可能对使用键盘原始模式有所帮助,这将使您能够访问键盘事件而不仅仅是按键释放。

  1. 这篇 Linux 期刊文章
  2. 这篇关于 SourceForge 的文章
  3. 当一切都变糟时,这个HOWTO

原始模式确实有一个缺点,即您必须自己进行从扫描码到字符的转换。

于 2009-10-21T02:29:56.747 回答
6

这在一般情况下不起作用。ANSI 终端(所有仿真器都来自它)仅表示按键“按下”事件。他们不会独立记录向下/向上事件。

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

于 2009-09-11T15:55:24.577 回答
3

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

于 2009-09-11T14:22:18.467 回答