Geräte erhalten höchstwahrscheinlich eine Datei in 06
mit dem Namen 18
wobei N für die verschiedenen Geräte wie Maus, Tastatur, Buchse, Ein/Aus-Tasten usw. steht.
03
sollte Ihnen einen Hinweis geben.
Siehe auch:
12
Wobei 21
Wert ist Pfad unter 37
.
Sie können testen, indem Sie z.
20
Verwenden Sie zum Implementieren ioctl und überprüfen Sie Geräte + Monitor.
BEARBEITEN 2:
OK. Ich erweitere diese Antwort basierend auf der Annahme 41
verwendet wird.
Eine Möglichkeit könnte sein:
-
Bei der Startschleife alle
58
Dateien gefunden in69
. Verwenden Sie74
um Ereignisbits anzufordern:34
dann prüfen ob
81
-Bit ist gesetzt. -
IFF gesetzt, dann nach Schlüsseln suchen:
42
Z.B. Wenn Zahlentasten interessant sind, dann prüfen Sie, ob Bits für
91
vorhanden sind -100
und113
bis123
. -
IFF-Schlüssel gefunden, dann Überwachung der Ereignisdatei im Thread starten.
-
Zurück zu 1.
Auf diese Weise sollten Sie alle Geräte überwachen können, die die gewünschten Kriterien erfüllen. Sie können nicht nur nach 137
suchen wie z.B. Power-Button wird dieses Bit gesetzt haben, aber es wird offensichtlich nicht 141
haben usw. eingestellt.
Habe falsch positive Ergebnisse für exotische Schlüssel gesehen, aber für normale Schlüssel das sollte genügen. Es schadet nicht direkt, z.B. Ereignisdatei für den Netzschalter oder eine Buchse, aber diese geben keine fraglichen Ereignisse aus (auch bekannt als schlechter Code).
Mehr im Detail weiter unten.
BEARBEITEN 1:
In Bezug auf "Erklären Sie diese letzte Aussage …" . Gehe hier in Stackoverflow landen … aber:
Ein schnelles und schmutziges Beispiel in C. Sie müssen verschiedenen Code implementieren, um zu überprüfen, ob Sie tatsächlich das richtige Gerät erhalten, den Ereignistyp, den Code und den Wert übersetzen. Typischerweise Key-Down, Key-Up, Key-Repeat, Key-Code usw.
Ich habe keine Zeit (und ist hier zu viel), um den Rest hinzuzufügen.
Sehen Sie sich 156
an , Programme wie 167
, Kernel-Code usw. für Mapping-Codes. Z.B. 176
Wie auch immer:
Ausführung als z. B.:
50
Code:
63
EDIT 2 (Fortsetzung):
Beachten Sie das, wenn Sie sich 189
ansehen Sie haben einen Buchstaben am Anfang jeder Zeile. Hier 199
bedeutet Bitmap. Das ist zum Beispiel:
75
Jedes dieser Bits entspricht einer Eigenschaft des Geräts. Was als Bitmap bedeutet, 1 zeigt an, dass eine Eigenschaft vorhanden ist, wie in 202
definiert . :
81
Siehe 216
im Kernel-Quellbaum. Da gibt es viel guten Code. (Zum Beispiel werden die Geräteeigenschaften von dieser Funktion erzeugt.)
Jede dieser Eigenschaftsabbildungen kann durch 226
erreicht werden . Wenn Sie beispielsweise prüfen möchten, welche LED-Eigenschaften verfügbar sind, sagen Sie:
91
Sehen Sie sich die Definition von 238
an in 240
wie 259
sind definiert.
Um den Status der LEDs zu überprüfen, sagen Sie:
109
Wenn Bit 1 in 265
sind 1 dann num-lock leuchtet. Wenn Bit 2 1 ist, leuchtet die Feststelltaste usw.
278
hat die verschiedenen Definitionen.
Hinweise zur Ereignisüberwachung:
Pseudo-Code für die Überwachung könnte in die Richtung gehen von:
116
Einige verwandte Dokumente:
281
, insb. Abschnitt 5 beachten.295
, Beschreibung verschiedener Veranstaltungen usw. Beachten Sie, was z.309
über318
326
... lesen Sie den Rest nach, wenn Sie möchten.
Sie können dies einfach tun, indem Sie auf 332
verweisen . Diese erscheinen als symbolische Links, die Sie mit 344
dereferenzieren können um das zugehörige Blockgerät zu ermitteln. Diese Links werden jedoch von 354
erstellt die in Ihrer eingebetteten Umgebung möglicherweise nicht vorhanden sind.
Oder.. Sehen Sie sich den 363
an nach dem Anschließen des USB-Geräts. Es sollte Ihnen den 374
geben Knoten.