0

重複の可能性:
Ubuntu のバックグラウンド プロセスでデータをフェッチする方法

キーボードで押されたキーを監視するプログラムを書いています。しかし、私のプログラムはフォアグラウンドまたはバックグラウンドで実行されている可能性があります。システム コールを実行しているプログラムがバックグラウンドにある場合でも、プログラマがキーボード アクティビティを監視できる OS 固有のシステム コールがあると聞きました。私はUbuntuプログラミングが初めてなので、そのOSシステムコールとは何か教えてください。

注: このプログラムは、厳密に教育目的のためのものです。学校のプロジェクトの一部です。

よろしく

4

3 に答える 3

2

ほとんどの Ubuntu システム (少なくとも初心者の Ubuntu ユーザー向けのデスクトップ) は、X11ウィンドウ サーバー ( Xorgなど) を実行しています。そのサーバー(のみ)は、生のキーボードとマウスのデバイス入力を取得しています。それらを処理して、 X11 プロトコル イベントをクライアント アプリケーション (Firefox ブラウザー、emacsエディター、GNOME、xterm端末など)に配信します。

それらすべてを理解するために時間 (数か月) を費やすことができます (おそらくfreedesktopから始めます)。他のプロジェクトに切り替えることもできます。おそらく、 Gtk (Gnome 内) またはQt (KDE 内)を使用して興味深い GUI アプリケーションをコーディングするだけです。すべての Linux グラフィカル ツールキット ライブラリは、X11 プロトコルとインターフェイスするライブラリ (通常はXlibまたはXCB ) の上に構築されます。

Linux プログラミングの学習を開始する場合は、Advanced Unix ProgrammingおよびAdvanced Linux Programmingをお読みください。その後、 tty -sの謎を理解するために多くの時間を費やし、 syscalls(2)に慣れてください。その後、Qt やGTKなどのグラフィカル ツールキットに慣れてください。

そして、あなたのよくない、疑わしい質問に正確に答えることがいかに難しいかを理解し始めるでしょう. (答えは視点に大きく依存します -Xorg他のアプリケーション、特に X クライアントとは異なる重要なイベントを見て、非常に複雑です)。

私が提供したリンクのすべての概念を理解したら、より正確に質問をすることができます。より正確で技術的な用語 (特に、キーボードとマウスをどのレベルで監視したいかを説明する) で質問を再質問し、実験したコードを示していただければ、お答えすることができます (喜んでお答えします)。あなた。

于 2012-10-05T13:54:25.090 に答える
0

グローバルホットキーをバインドし、キーを押すと事前定義されたアクションを実行する Linux 用のプログラムがあります。といいxbindkeysます。提案についてはソースコードを参照するか、そのまま使用してください。

于 2012-10-05T14:38:24.650 に答える
0

OS 固有のシステム コールがあると聞きました : 誰から聞いたのですか? あなたは彼らに尋ねましたか?

これには複数の呼び出しが必要ioctlです。ロガーを端末ストリームにプッシュするには、(Ubuntu では異なる場合があります) を使用する必要があります。これは単純ではなく、最初のプロジェクトにはあまり適していません。例については、scriptプログラムを参照してください。

于 2012-10-05T13:37:30.927 に答える