Hook und Tastenabfrage



  • Hallo.

    Ich schreibe grade ein kleines Programm.
    Ich möchte darin über einen Hook wie in den FAQ beschrieben eine Taste "abfangen".
    Die Tasten kann ich über den Hook auch auslesen, klappt also alles.

    Jetzt möchte ich nur, dass wenn beispielsweise die Steuerungtaste gedrückt wird, eine bestimmte Aktion stattfindet. Da komm ich echt nicht weiter.

    if (Message.LParam == VK_CONTROL)
    

    klappt hier leider nicht.

    Außerdem soll diese bestimmte Taste Variabel sein. Also so ähnlich wie bei Teamspeak. Die Taste wird so festgelegt:

    void __fastcall TF_FMS::FormKeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
    {
     F_Haupt->Sprechtaste = Key;
    
    //----
    //----
    
    In F_Haupt.h :
    WORD Sprechtaste
    }
    

    BItte helft mir!



  • Ich vermute mal, der numerische Scancode (VK_CONTROL etc. sind ja nur #defines für Zahlenwerte) steht in Message.WParam.
    Habe aber grad nichts zum Prüfen zur Hand.



  • Danke für den Tipp

    Habe mal anstatt VK_CONTROL eine 17 eingesetzt.

    => Nichts passiert

    Was mich aber auch wundert ist, dass dieser LParam einen sehr hohen Wert hat. Z.B. 1900545 für STRG. EIgentlich müsste es aber doch 17 sein!?



  • Nochmal:
    In LParam steht der Tastenname quasi im Klartext, gemäss der jeweiligen Spracheinstellung des Systems. Das sollte beim Nachvollziehen des FAQ-Beispieles doch aufgefallen sein.
    Der numerische Tastencode, der sich dann mit VK_CONTROL oder 17 vergleichen lässt, dürfte in WParam stehen. W. Wie Wilhelm. Willi will's wissen. World Wide Web. Usw.



  • Super.
    Danke. Jetzt klappts.

    Hatte deinen ersten Beitrag übrigens falsch gelesen/verstanden.... 🙄
    Aber beim zweiten lesen wurds mir klar 😉

    Trotzdem vielen Dank für deine anschaulichen W Beispiele 😉


Anmelden zum Antworten