Jak sprawdzić, czy klawisze Num Lock, Caps Lock, Scroll Lock, Insert są włączone

Adam Boduch

Umieść na formularzu cztery komponenty CheckBox. W zdarzeniu OnCreate formy wpisz:

CheckCapsLock.Checked := (GetKeyState(VK_CAPITAL) and 1) <> 0; // CapsLock
CheckNumLock.Checked := (GetKeyState(VK_NUMLOCK) and 1) <> 0; // NumLock
CheckScrollLock.Checked := (GetKeyState(VK_SCROLL) and 1) <> 0; // ScrollLock
CheckInsert.Checked := (GetKeyState(VK_INSERT) and 1) <> 0; // Insert
FAQ

6 komentarzy

zgadzam się w 100% z Mr.Hania [sorry za bezmyslne skopiowanie nicku]
xD

MSC - ten artykuł działa. Po prostu musisz pozmieniać nazwy checkboxów na CheckNumLock, CheckCapsLock, CheckInsert, CheckScrollLock. Albo pozamieniać nazwy w kodzie na CheckBox1, CheckBox2 itd. Programowanie to nie tylko bezmyślne kopiowanie kodu, trzeba też wiedzieć jak go użyć ;)

Zastanawiam się po co jest ten "and 1" ? Następujący kod przecież działa równie dobrze:

CheckCapsLock.Checked := GetKeyState(VK_CAPITAL) <> 0; // CapsLock
CheckNumLock.Checked := GetKeyState(VK_NUMLOCK) <> 0; // NumLock
CheckScrollLock.Checked := GetKeyState(VK_SCROLL) <> 0; // ScrollLock
CheckInsert.Checked := GetKeyState(VK_INSERT) <> 0; // Insert 

...na wszelki wypadek poprawiam w artykule tylko nie domknięty nawias...

crop: a co miałby niby dać taki sam kod, tylko że RadioButtony umieszczone na Panelach zamiast na formie? :-/

a jak je zaświecać i gasić?

TEN ARTYKUŁ CHYBA NIE DZIAŁA...:/