Der neue Laptop meiner Freundin hat keine Anzeige-LEDs für NumLock und CapsLock, also habe ich ein kleines Programm geschrieben, das ihren Status auf dem Bildschirm anzeigt:
%Vor%Dies funktioniert, solange mein Programm den Fokus hat, aber wenn der Fokus auf andere Programme geht, werden die Status nicht mehr aktualisiert. (Es genügt jedoch, nur die Maus über das Formular zu bewegen, ohne zu klicken.)
Wie kann ich das Programm aktualisieren lassen, wenn eine andere Anwendung den Fokus hat?
Sie können einfach GetKeyState
in Ihrem Timer.
Dies funktioniert auch dann, wenn Ihre Anwendung nicht den Fokus hat. Getestet auf XP.
Sie sollten einen Low Level Keyboard Hook , weil Sie dann für jeden Tastenanschlag benachrichtigt werden können, selbst wenn Ihre Anwendung keinen Fokus hat.
Ich habe ein kleines Beispiel für dich erstellt
%Vor% Grundsätzlich auf formCreate
hake ich die Tastatur, und teilt meinem Programm mit, in welcher Funktion ich meine Benachrichtigung brauche. In meinem Beispiel habe ich es LowLevelKeyboardProc
Dann müssen Sie nur testen, welche Taste gedrückt wird, und wenn es eine der CapsLock Num Lock ist, dann noify das Formular.
Tags und Links delphi delphi-xe8