Tastendruck USB-Keypad von Tastatur unterscheiden
-
Hallo!
Gibt es eine Möglichkeit zu unterscheiden, ob
ein Tastendruck von einem numerischen Keypad
oder der Tastatur kam (um diese Abzufangen und
als andere Taste an WIndows weiterzusenden)?Hintergrund ist, dass der NumLock-Status für
ein numerisches Keypad nicht von dem der Note-
book Tastatur getrennt ist.
Normalerweise ist das Keypad ja dafür gedacht,
Zahlen darauf bequem eingeben zu können. Das
Blöde ist nur, dass wenn NumLock eingeschaltet
ist, kann ich auf der Notebooktastatur nicht
gleichzeitig auf alle Buchstaben zugreifen.
Das wäre aber wünschenswert!
(Wer das so programmiert hat ...)Alex.
-
Ich hab Deine Frage jetzt nicht ganz verstanden...
Du hast also *zwei* Tastaturen: Eine Notebook und ein externen Keypad, oder?
Und Du willst jetzt wissen was vom Keypad kommt und was von der Tastatur, oder?
-
Genau.
Es handelt sich hier um ein numerisches Keypad,
also nur um den Ziffernblock; der ist auf der
Notebooktastatur nur als Doppelbelegung der
Buchstaben vorhanden.Alex
-
Oder muss ich mich dann mit dem Treiber rumschlagen?
Soll heißen mit dem Windows DDK?Alex
-
Warum willst Du es überhaupt unterscheiden?
-
Habe ich das nicht bereits erklärt?
Auf einer Notebook-Tastatur ist im Gegensatz zur
normalen Computertastatur kein Ziffernbock.
Wenn man NumLock einschaltet, dann wird
u -> 4
i -> 5
o -> 6
p -> /
usw.Ich kann dann diese Buchstaben nicht mehr
eintippen. Und wenn man es trotzdem macht,
dann kommt folgendes raus:
5ch habe e5n n6teb662,
(Was wird das wohl heißen?
Damit ich bequem Zahlen eintippen kann, habe
ich mir einen externen Ziffernblock angeschafft.
Auf diesem kann ich aber nur dann Zahlen
eingeben, wenn NumLock aktiv ist -> siehe oben.
Wenn NumLock nicht aktiv ist, sendet er halt
die Pfeiltasten, "Bild auf" usw. Wenn ich aber die
Tasten einfach auf 1234567890 ummappe, kann ich
aber auch auf dem Notebook damit nur noch
Zahlen eingeben... Es sei denn, ich kann z.B. "Bild
auf" von dem Keypad und der Notebooktastatur unter-
scheiden.Alex
-
Ich bin vermutlich etwas schwer von Begriff... aber jetzt hab ich´s kapiert!
Aber ich glaube da gibt es keine Lösung (zumindest ist mir keine bekannt)...
Das einzige was ich mir vorstellen könnte wäre ein Keyboard-Filter-Driver:
http://msdn.microsoft.com/library/en-us/Hid_d/hh/HID_d/km-ovr_5a5da831-b90c-4234-a2ad-9fd3619c2f91.xml.asp
-
Danke für den Tip, allerdings habe ich es
leider nicht zum Laufen gebracht - es hat
sich inzwischen aber auch erübrigt.
Durch Zufall bin ich noch auf eine deutlich
einfachere Lösung gestoßen:
Der Scancode-Mapper (nutzbar ab Win 2000):
ich habe einfach der Taste 1 (Ziffernblock)
den Scancode der Taste 1 (über dem Buch-
stabenblock) zugewiesen. Damit ist dem
Ziffernblock der NumLock-Status egal, ich
muss ihn nicht einschalten und damit sind
die Buchstaben auf der Notebooktastatur
alle benutzbar. (Einziger Nachteil ist,
dass der Ziffernblock nun nicht mehr die
volle Funktionalität hat, also
Alt + xxx geht so nicht...)Beschrieben ist das unter
http://www.microsoft.com/whdc/device/input/w2kscan-map.mspxIst zwar nun kein C++, aber naja: Zum Nachmachen
in folgendes .reg-Datei kopieren und in Registry
einfügen:Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,12,00,00,00,02,00,4f,00,03,00,50,00,\ 04,00,51,00,05,00,4b,00,06,00,4c,00,07,00,4d,00,08,00,47,00,09,00,48,00,0a,\ 00,49,00,0b,00,52,00,33,00,53,00,00,00,00,00PS: Bitte nicht missbrauchen (a->e,c->y, usw

Alex
-
ach so:
zum Übernehmen der Änderungen ist ein
Neustart erforderlich.