ERLEDIGT Welchen Key Code hat Alt-GR?



  • for (i=1; i<=255; i++)
    {
    if(GetAsyncKeyState(i) == -32767 )
    {
    //i ist die Zahl des Codes, der gedückt wurde
    }
    }

    Ich suche seit gestern welchen Virtual Key Code (GetAsyncKeyState) die Taste Alt Gr hat.

    Wenn ich es in einer Schleife von 1-255 oder noch höher 1-10000 abfrage, liefert die Taste einfach keinen Keycode zurück.

    Die Alt Taste funktioniert, die hat 164

    Auf manchen Homepages steht Alt Gr = Right Alt (Code: 165)
    Aber das ist definitiv nicht der Fall.

    Andere Homepages schreiben wiederum Alt Gr = Strg + Alt (also 162 + 164 = 326?)
    Funktioniert auch nicht.

    Das selbe auch mit der Dauer-Shift Taste (über der Links Shift) Die Tasten liefern keine mir ersichtlichen KeyCodes retour.

    Was da jemand eine Antwort?



  • Arbeite doch mit dem virtual key code:
    http://msdn.microsoft.com/en-us/library/ms646301(VS.85).aspx



  • Flockig schrieb:

    Arbeite doch mit dem virtual key code

    😕

    ich versteh nicht ganz.

    Ich will ja mit dem Virtual Key Code arbeiten, nur weiß ich nicht welchen Code die Alt Gr Taste hat, das ist ja meine Frage

    Aber um auf die von dir verwiesene Funktion GetKeyState zurückzukommen:

    Hab das der Vollständigkeit auch probiert:

    if(GetKeyState(VK_CONTROL)<0) zb um zu prüfen ob ein STRG gedrückt wurde...
    funktioniert gleich wie GetAsyncKeyState, nur nimmt GetAsyncKeyState die Taste nur jeweils einmal am Stück, und GetKeyState nimmt sie so lange wie sie gedrückt wird, also je nach Drückdauer der Taste 30 bis 50 mal oder noch öfters.

    Aber AltGr kriegt sie auch nicht hin:

    GetKeyState(VK_CONTROL)<0 && GetKeyState(VK_MENU)<0 also strg und alt zusammen

    funktioniert nicht, trotz gedrückter AltGr Taste lässt ihn diese Abfrage vollkommen kalt.



  • hast du es mal mit ALT | STRG versucht?

    Gruß Matthias



  • Probier mal mit GetKeyState (VK_RMENU).



  • Es funktioniert schon!!!

    Hab schon was dahintersteckt

    Nur im Virtual PC, wo ich programmiere, nimmt er die AltGr und Permanent-Shift Tasten nicht.

    Hab das ganze auf meinem WinXP-Produktivsystem gestartet und dort funktionieren beide Tasten.

    AltGr mit dem Code 165, Permanent-Shift mit dem Code 20

    if(GetAsyncKeyState(165) == -32767 )

    if(GetAsyncKeyState(20) == -32767 )

    Zusatz: Das ganze auf einem Win98-System sieht wieder ganz anders aus: Dort gibt es AltGr und Permanent-Shift wiederum nicht, und die restlichen Steuertasten (Strg, Shift, ...) haben andere Codes.

    Danke trotzdem für alle Hilfen


Anmelden zum Antworten