25

「キーダウン」イベントと「キーアップ」イベントの両方に基づいて異なるアクションを実行する単純な C プログラムを書きたいと思います。このプログラムはrxvt内から実行されます。

キーの押下とリリースの両方にアクセスするには、どのライブラリまたはメカニズムを使用する必要がありますか? 読書/dev/ttyは重要なリリースしか提供しないというのは本当ですか? これは、termcap、terminfo、ncurses、およびスラングにも当てはまりますか? 端末アプリケーション内からこれを達成する方法はありますか?

4

3 に答える 3

12

次のリンクは、単にキーを離すだけでなく、キーボード イベントにアクセスできるキーボード RAW モードを使用する際に役立つ場合があります。

  1. この Linux Journalの記事
  2. SourceForge に関するこの記事
  3. そして、すべてがうまくいかないときのためのこのHOWTO

ただし、Raw モードには、スキャン コードから文字への独自の変換を行わなければならないという欠点があります。

于 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 に答える