HID-Tastatur programmgesteuert deaktivieren

#1781107
Lesenswert?

Hallo Forum,

ich habe hier eine spezielle Anfrage:

Ist es möglich, eine USB-HID-(Zusatz-)tastatur zeitweise zu 
deaktivieren? Ich stelle mir das so vor, dass ein pfiffiger Zugriff auf 
ein Gerätehandle oder der Eingriff in die Registry das Gerät zeitweise 
aktiviert oder deaktiviert.

Hinweise:
- Betriebssystem ist Windows XP
- USB VID und PID des Geräts sind bekannt

Der Hintergrund ist der, dass das spezielle zu deaktivierende Gerät 
Zeichen sendet, die aber nur zur Eingabe gelangen sollen, wenn auch das 
entsprechende Fenster ausgewählt ist.

Danke schon mal im Voraus!
#1781344
Lesenswert?

Hm, ja, das ist interessant: Manche Gerät kann man im Geräte-Manager 
aktivieren/deaktivieren, andere nicht. Meine Maus schon, Tastaturen 
scheinbar nicht :-(

Es gibt da eine Kommandozeilenversion vom Gerätemanager (devcon.exe), 
bei der das aber auch nicht funktioniert. Immerhin gibt es devcon im 
Quelltext(!), Stichwort Setup-API. Warum man aber eine Tastatur nicht 
deaktivieren kann bleibt im Dunkeln. Vielleicht eine fehlende Funktion 
im USB-Stack ("SetConfiguration")? Keine Ahnung.
#1782956
Lesenswert?

guest schrieb:
> Ist die Tastatur ein Eigenbau oder muss das auch mit Standardtastaturen
> funktionieren?
Es ist ein Eigenbau, verhält sich aber wie eine USB-Tastatur.

> Wozu überhaupt?
Das fragliche Gerät ist keine Tastatur, sondern ein Lesegerät ähnlich 
Barcodes, mit dem Informationen von Datenträgern direkt in Textdokumente 
gelesen werden. Jetzt ist gefordert, dass dieses Lesegerät deaktiviert 
werden kann, damit es im Alltag nicht "dazwischen funkt".
Persönliche Seite #1782970
Lesenswert?

Was wäre davon zu halten, wenn das Gerät dahingehend modifiziert wird, 
daß es nicht die Scancodes normaler Tastaturen ausgibt, damit es nicht 
"dazwischenfunken" kann?

Es gibt ja nun auch andere HID-Anwendungen, bei denen HID nur als Mittel 
zum Zweck genutzt wird, um keinen Devicetreiber entwickeln zu müssen, 
bei denen aber das HID-Gerät nicht einer vorhandenen Tastatur oder Maus 
dazwischenfunkt - das scheint mir sinnvoller zu sein als ein 
Aktivieren/Deaktivieren des zugehörigen Gerätetreibers.
#1783122
Lesenswert?

Rufus t. Firefly schrieb:
> Was wäre davon zu halten, wenn das Gerät dahingehend modifiziert wird,
> daß es nicht die Scancodes normaler Tastaturen ausgibt, damit es nicht
> "dazwischenfunken" kann?
Der Gag einer Tastaturemulation ist, dass bestehende Anwendungen ohne 
Modifikation genutzt werden können. Und genau dies ist der Fall.

Nicolas S. schrieb:
> Dem Gerät eine Funktion zu spendieren, daß es mal Sendepause macht ist
> keine Option?
Doch. Beispielsweise wurde die Firmware für Testzwecke so verändert, 
dass das Gerät nur bei aktivem Scrolllock sendet. Das wurde aber als "zu 
umständlich" oder "schwer vermittelbar" eingestuft. Daher geht es hier 
darum zu prüfen, ob ein Deaktivieren des Geräts möglich ist. Wenn das 
einfach ginge ("drei Zeilen Quelltext"), wäre es ein brauchbarer Ansatz.
#1783313
Lesenswert?

Rufus t. Firefly schrieb:
> Hier ja wohl nicht, wenn das Gerät andere Anwendungen stören kann und
> deswegen deaktiviert werden muss.

Das Gerät soll seine Daten halt nicht in anderweitig verfasste Dokumente 
posaunen. Die Zielapplikation, die die Nutzdaten verarbeiten soll, 
kann aber ebenfalls ein nicht veränderbares Programm sein. 
Scancodefriemeln ist damit praktisch ausgeschlossen.
(Firma: rahand.eu) #1784329
Lesenswert?

Na wenn das ein Eigenbau ist, dann spendiere Deinem HID-Keyboard noch 
eine Steuerleitung - also eine weitere HID-Schnittstelle. Was Du 
brauchst sind zwei freie Endpunkte. Das Ganze ergibt dann ein 
USB-Verbundgerät (Composite).

Deine Anwendung musst Du dann natürlich anpassen bzw. Du schreibst 
einfach ein kleines Programm mit ner GUI und einem Button für An/Aus 
oder irgendwas in der Art.

Gruß Ralf
#1784846
Lesenswert?

Ja, das wäre evtl. möglich. Es muss nur sichergestellt sein, dass ein 
Computer nicht am zweiten "Gerät" kollabiert.

Wir hatten noch die Idee, per Feature-Request einen Report and das Gerät 
zu senden, aber wenn XP die Tastatur mal unter Beschlag hat, kriegt man 
kein Handle mehr auf dieses USB-Gerät. Wäre schön, wenn ich mich 
täuschen würde...
Gast #1785053
Lesenswert?

Ich entwickle grad eine Anwendung die auch Barcodescanner benutzt. 
Allerdings kein Eigenbau.
Die werden defaultmäßig auch als Tastatur erkannt. Ist aber schlecht.
Sobald der Benutzer irgendetwas einscannt, bekomme ich in meiner 
Anwendung den ganzen Mist rein.
Allerdings lassen diese Barcodescanner sich umstellen und arbeiten dann 
als virtueller comport.
Diesen öffne ich und verarbeite die Daten nur dann, wenn ich sie 
benötige.

Vieleicht kannst du dein Gerät auch nur als ComPort bereitstellen und 
ein kleines Programm schickt mit sendKey die Daten an deine Anwendung, 
wenn du sie brauchst.
kannst ja das aktive fensterhandle auslesen und wenn das richtige 
fenster aktiv ist, dann schickst du an dieses Fenster die eingelesenen 
Daten.


mfg
Thomas
#1798679
Lesenswert?

Ein selbst Geschriebenes. Der Trick ist, dass man Feature Reports auch 
an vom Betriebssystem benutzte Geräte schicken kann, indem man bei 
CreateFile weder Lese- noch Schreibbedarf (!) anmeldet. Darauf muss man 
auch mal kommen, aber die Tiefen des Internet sind halt unerschöpflich.

Zusätzlich mußte auch die Firmware verändert werden, bzw. der Feature 
Report im HID Descriptor "angemeldet" werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren