キー押下信号をバックグラウンドプロセスに送信する

キー押下信号をバックグラウンドプロセスに送信する

私はデーモンについて学び、Cで書いてきました。デーモンはUbuntuからグローバルキー押下信号を受信し、受信したキー押下信号を別々のファイルに書き込もうとしています。

これを達成する方法はありますか?それでは、どうすればいいですか?

ベストアンサー1

最も簡単な方法は、公開されたイベントデバイスを読み取ることです/dev/input/カーネル文書Cでこれらのデバイスを操作する方法を学ぶことができるLinux入力サブシステム。

入力デバイスをすばやくテストするために使用できるいくつかのソフトウェアパッケージがあります。たとえば、apt-get install input-utilsUbuntuでは次のツールを使用できます。

lsinput:システムに接続されている入力デバイスを列挙します。

$ sudo lsinput
/dev/input/event0
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x3
   version : 0
   name    : "Sleep Button"
   phys    : "PNP0C0E/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event1
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x5
   version : 0
   name    : "Lid Switch"
   phys    : "PNP0C0D/button/input0"
   bits ev : EV_SYN EV_SW

/dev/input/event2
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x1
   version : 0
   name    : "Power Button"
   phys    : "LNXPWRBN/button/input0"
   bits ev : EV_SYN EV_KEY

/dev/input/event3
   bustype : BUS_I8042
   vendor  : 0x1
   product : 0x1
   version : 43841
   name    : "AT Translated Set 2 keyboard"
   phys    : "isa0060/serio0/input0"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

/dev/input/event3視聴したいキーボードデバイスは次のとおりです。

input-events:入力デバイスからイベントを読み込んで表示します。3forなどのデバイス番号パラメータが必要です/dev/input/event3

$ sudo input-events 3
/dev/input/event3
   bustype : BUS_I8042
   vendor  : 0x1
   product : 0x1
   version : 43841
   name    : "AT Translated Set 2 keyboard"
   phys    : "isa0060/serio0/input0"
   bits ev : EV_SYN EV_KEY EV_MSC EV_LED EV_REP

waiting for events
09:27:02.961576: EV_MSC MSC_SCAN 50
09:27:02.961576: EV_KEY KEY_M (0x32) released
09:27:02.961576: EV_SYN code=0 value=0
09:27:03.833925: EV_MSC MSC_SCAN 58
09:27:03.833925: EV_KEY KEY_CAPSLOCK (0x3a) released
09:27:03.833925: EV_SYN code=0 value=0
09:27:09.344765: EV_MSC MSC_SCAN 30
09:27:09.344765: EV_KEY KEY_A (0x1e) pressed
09:27:09.344765: EV_SYN code=0 value=0
09:27:09.446881: EV_MSC MSC_SCAN 30
09:27:09.446881: EV_KEY KEY_A (0x1e) released
09:27:09.446881: EV_SYN code=0 value=0
09:27:09.548389: EV_MSC MSC_SCAN 48
09:27:09.548389: EV_KEY KEY_B (0x30) pressed
09:27:09.548389: EV_SYN code=0 value=0
09:27:09.640385: EV_MSC MSC_SCAN 48
09:27:09.640385: EV_KEY KEY_B (0x30) released
09:27:09.640385: EV_SYN code=0 value=0
09:27:09.781365: EV_MSC MSC_SCAN 46
09:27:09.781365: EV_KEY KEY_C (0x2e) pressed
09:27:09.781365: EV_SYN code=0 value=0
09:27:09.853143: EV_MSC MSC_SCAN 46
09:27:09.853143: EV_KEY KEY_C (0x2e) released
09:27:09.853143: EV_SYN code=0 value=0
...

おすすめ記事