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
58Dateien gefunden in69. Verwenden Sie74um 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
91vorhanden sind -100und113bis123. -
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über318326... 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.