Virtual key -> scan code: Irgendeine Chance, zwischen Links/Rechts zu unterscheiden?



  • Hi!

    Ich nutze MapVirtualKeyEx(), um einen "virtual key code" in einen "scan code" zu konvertieren.
    Leider gibt es nun zwei Probleme:

    Erstens erhalte ich per WM_KEYDOWN keinen unterschiedlichen Code für zB. linkes/rechtes STRG.
    Und zweitens kann MapVirtualKeyEx() es sowieso nicht unterscheiden.

    Ich möchte aber per Tastendruck in einem Dialog die eindeutigen scan codes bekommen, nämlich:

    STRG links: 29
    STRG rechts: 157
    UMSCHALT links: 42
    UMSCHALT rechts: 54
    ALT links: 56
    ALT rechts: 184
    ENTER: 28
    ENTER (ZEHNERTASTATUR): 156

    Wie stelle ich das an?
    Danke!


  • Mod

    Ês gibt doch:

    #define VK_LSHIFT         0xA0
    #define VK_RSHIFT         0xA1
    #define VK_LCONTROL       0xA2
    #define VK_RCONTROL       0xA3
    #define VK_LMENU          0xA4
    #define VK_RMENU          0xA5
    

    Du kannst jederzeit mit GetKeyState den Status dioeser Tasten ermitteln.



  • Ich bekomme jedenfalls die aufgelisteten scan-codes nicht.


  • Mod

    Virtual4 schrieb:

    Ich bekomme jedenfalls die aufgelisteten scan-codes nicht.

    Habe ich doch geschrieben. Du kannst nurt prüfen ob diese Taste gedrückt ist, wenn eine Taste eingeht. Also wenn VK_SHIFT ankomt, kanst Du mit GetKeyState prüfen welche es ist...

    Schon mal an Lesen der Hinweise gedacht? 🕶


Anmelden zum Antworten