2009-09-11 6 views
16

「キーダウン」と「キーアップ」の両方のイベントに基づいて異なるアクションを実行するシンプルなCプログラムを作成したいと思います。このプログラムはrxvtから実行されます。Linuxのターミナルアプリケーションでキープレスとキーリリースのイベントを受け取っていますか?

キープレスとリリースの両方にアクセスするために使用するライブラリまたはメカニズムを教えてください。読むこと/dev/ttyは主要なリリースのみを提供するのは本当ですか?これはtermcap、terminfo、ncurses、およびslangにも当てはまりますか?ターミナルアプリケーション内でこれを達成する方法はありますか?

答えて

3

ncursesは機能しません。 Basilevsのリンクは、「上向き矢印」キーと「下向き矢印」キーについて語りました。主要なプレスリリースではありません。

4

これは一般的なケースでは機能しません。 (すべてのエミュレータが降下する)ANSI端末は、主要な「プレス」イベントのみを表します。彼らはイベントを独立して記録しません。

低レベルのキーボードイベントアクセスが必要な場合、適切な環境は実際にはGUIプログラムです。 Webアプリケーションでも、端末よりも重要なイベントへのよりクリーンなアクセスが可能です。

7

以下のリンクは、キーロスだけでなくキーボードイベントにアクセスできるキーボードモードを使用する際に役立つかもしれません。

  1. このLinuxのジャーナルarticle
  2. SourceForgeの
  3. にこのarticleそして、それがすべて悪いになったときのために、このHOWTO

rawモードは、あなたがから自分の変換をしなければならない欠点を持っています文字をコードにスキャンします。

+2

+1この回答をお寄せいただきありがとうございます。ターミナルプログラムでは生のキーボードアクセスが必要でしたが、これが解決策でした。しかし、生のキーボードアクセスを使用すると、あなたのプログラムは古典的なターミナルプログラムのように "振る舞い"しないことを覚えておく必要があります。たとえば、リモートマシン上で実行する場合、キーイベントを登録することはできません。これを覚えておいてください。 – leemes

関連する問題