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.mspx

    Ist 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,00
    

    PS: Bitte nicht missbrauchen (a->e,c->y, usw 🙂

    Alex



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


Anmelden zum Antworten