Virtual Key Codes



  • Hallo,
    ich wollte fragen, welche bezeichnung die Buchstaben und Zahlen tasten haben.
    In einem Buch habe ich gelesen, das bsw. für die taste 1 VK_1 richtig ist.
    Und in der MSDN hab ich gelesen, das 31 richtig ist.
    Jedoch funktioniert beides nicht. bei VK_1 sagt mir der Compiler gleich, das VK_1 nicht definiert ist. Und 31 wird zwar akzeptiert, bloß wenn ich die Taste drücke passiert nichts. Genau das selbe ist es auch mit den Buchstaben.

    Kann mir da jemand helfen?



  • Hallo

    Virtual Key Codes gibts nur für Tasten die keine direkte visuelle Repräsentation haben. Bei Zahlen und Buchstaben und allen anderen direkt im Quellcode verwendbaren Ascii-Zeichen nimmst du also direkt die Char-Konstante

    if (Key == '1')
        ShowMessage("1");
    

    bis bald
    akari



  • Viel Dank!!
    Ich hab schon eine Woche das Inet danach durchsucht.



  • Hallo,
    ähm...mit ü, ä, ö, ß klappt das nicht.
    Was muss ich denn da schreiben?



  • 'ü', 'ä', 'ö', 'ß'
    Funktioniert problemlos.



  • hmm...
    Bei mir funktionieren die nicht.
    Der Compiler gibt zwar keine Fehlermeldung, aber wenn ich die Tasten drücke, passiert nichts.
    Ist es möglich, das meine BCB Version vielleicht zu alt ist?



  • Unwahrscheinlich.
    Aber solange du nicht zeigst, was du konkret machst, ist kaum eine Aussage möglich.



  • Das hier hab ich für die tasten geschrieben:

    #define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
    
    void __fastcall TForm1::EingabenUeberwachungTimer(TObject *Sender)
    {
      if(KEY_DOWN('Ä')){Edit1->Text = Edit1->Text + "Ä";Sleep(150);}
      if(KEY_DOWN('Ö')){Edit1->Text = Edit1->Text + "Ö";Sleep(150);}
      if(KEY_DOWN('Ü')){Edit1->Text = Edit1->Text + "Ü";Sleep(150);}
      if(KEY_DOWN('ß')){Edit1->Text = Edit1->Text + "ß";Sleep(150);}
    }
    

    Für alle Zahlen und Buchstaben funktioniert das auch, bloß die 4 wollen nicht.

    Das mit dem Edit, macht jetzt auf den ersten Blick zwar keinen sinn, aber da die Zeichen auch im Edit erscheinen sollen, wenn das Fenster nicht aktiv ist, ist die logik denke ich wieder da _


Anmelden zum Antworten