Announcement

Collapse
No announcement yet.

NUM-LOCK und GetKeyBoardState

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • NUM-LOCK und GetKeyBoardState

    Hallo,

    ich weiß, dass man mit GetKeyBoardState den Status z.B der NUM-Taste bestimmen kann.
    Wie kann ich aber die Veränderung dieses Zustands registrieren, ohne einen Timer laufen zulassen?
    Gibts da irgendeine System-Botschaft.? (Mit globalen Hooks will ich auch nicht unbedingt arbeiten...)

    Danke

  • #2
    Du musst so oder so mit Hooks arbeiten. Eine Message gibt es bestimmt, so das du auf einen Timer verzichten kannst.

    http://www.swissdelphicenter.ch/de/showcode.php?id=92

    Comment


    • #3
      Ich benutze<br>
      if (Windows.GetKeyState(VK_NUMLOCK) and $1) <> 0 then<br>
      Das gibt den aktuellen Zustand des Numlock.<br>
      Hast du ganz saudoof geprueft ob du die Taste in einem WM_KEYDOWN kriegst? Am besten im Application.OnMessage. Wahrscheinlich wird die Message naemlich von TranslateMessage geschluckt

      Comment


      • #4
        zu #2:
        wie man generell prüft, ob diese Taste gedrückt ist, ist mir schon klar.<BR>
        Mein Problem liegt darin, das ich in einer Textverarbeitung den Status der CAPS, NUM, SCRL-Taste anzeigen will und so auf die Änderungen der Stati reagieren will.<BR><BR>
        Die zwei einzigsten mir bis jetzt bekannten Lösungen bestehen darin, ständig nach dem Status zu Pollen (Timer) oder einen globalen Hook zu setzen (da sonst Tastatur Ereignisse anderer Anwendungen meine Anwendung nicht erreichen).<BR>
        Ich hatte gehofft, dass eine Systemweite Nachricht gibt, welche die Änderung dieser Tasten signalisiert...<BR><BR>
        Trotzdem erst mal Danke Schön an Euc

        Comment


        • #5
          Meine obengenannte Zeile gibt den aktuellen NumLock-Status wider.<br>
          Wenn dein Programm nicht im Vordergrund ist muss es doch den aktuellen Status garnicht updaten.<br>
          Im Vordergrund sollte es die Tasten bekommen

          Comment


          • #6
            Notfalls aktualisierst Du die Werte in OnPaint. Damit ist sichergestellt, daß nach einem Fokuswechsel zu Deiner App, die aktuellen Stati angezeigt werden...

            Joche

            Comment


            • #7
              Ihr habt mal wieder recht. Danke, dass ihr mir auf die Sprünge geholfen habt..

              Comment


              • #8
                Wir haben IMMER recht! ;-

                Comment

                Working...
                X