24

すでにプラグインされている可能性のある隠しデバイスの所有権を取得し、その出力を消費しながら、他のユーザー (X11 またはターミナル) がそれを消費できないようにしたいと考えています。

できることなら、端末のふりをするのではなく、特定の hid またはキャラクター デバイスを独占したいのです。一部の hid デバイスは x/terminal によってマウス/キーボードとして認識される可能性がありますが、2 番目のマウスまたはキーボードを別の用途に使用できますが、そのためにはそれらが偽の入力を x/terminal に送信していないことを確認する必要があります。ターミナルを開きます。

これがどのように行われるかについて、誰かが洞察を持っていますか?

4

1 に答える 1

26

私はこれを行いました - 私の特定のアプリケーションは、USB HID バーコードリーダー (USB HID キーボードデバイスとして表示されます) からイベントを読み取るデーモンでした。

これを行うために、イベント デバイス インターフェイスを使用して、/dev/input/event*目的のデバイスに対応するデバイスを開きました。EVIOCGRAB次に、デバイスで ioctl を発行して、デバイスを排他的に取得し、デバイスからイベント (キーの押下、マウスの動きなどを表す) を読み取ります。

(デバイスが独占的に使用されると、アプリケーションだけがデバイスからのイベントを認識します)。

于 2009-11-09T01:34:42.567 に答える