Home » Tipps & Tricks » System » Tastatur und Maus » Tastatur LEDs ansteuern
Tastatur LEDs ansteuern
Der Artikel zeigt, wie die Tastatur-LEDs (NUM, ROLLEN, CAPS-LOCK) angesteuert werden können. Diese Methode hat nicht nur Auswirkungen auf die LEDs, sondern auch auf den Status der jeweiligen Tasten.
uses Windows; procedure SetLED(Key: Byte; MakeOn: Boolean); var KS: TKeyboardState; begin GetKeyboardState(KS); // Wenn Status vom gewünschten abweicht if ((KS[Key] 0) xor MakeOn) then begin // Je nach Plattform / Key unterschiedliche Strategien if (Win32Platform = VER_PLATFORM_WIN32_NT) or (Key VK_NUMLOCK) then begin // Tastendruck simulieren keybd_event(Key, $45, KEYEVENTF_EXTENDEDKEY, 0); keybd_event(Key, $45, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); end else begin // Gewünschten Status per Setkeyboardstate setzen KS[Key]:= Ord(MakeOn); SetKeyboardState(KS); end; end; end;
Der Aufruf der Methode könnte z.B. folgendermaßen aussehen:
procedure TForm1.Button1Click(Sender: TObject); begin SetLED(VK_CAPITAL, True); end;
Dem ersten Parameter muss die Byte-Konstante für die entsprechende LED übergeben werden (Virtual Keys). Folgende Werte sind möglich:
- VK_NUMLOCK: NUM-Lock-Taste
- VK_CAPITAL: Feststell-Taste
- VK_SCROLL: Scroll-Taste
Der zweite Parameter legt fest, ob die LED an- oder ausgeschaltet werden soll.Da die LEDs nicht als Lichtorgel ausgelegt wurden, sollten man deren Status nicht zu häufig ändern, da es sonst zu Beschädigungen an der Tastatur kommen kann.
Quellen:
http://support.microsoft.com/kb/q177674/
http://support.microsoft.com/kb/q127190/