Kopsavilkums
SetKeyboardState () dokumentācijā ir norādīts, ka nevarat izmantot šo API, lai ieslēgtu taustiņu NUM LOCK, CAPS LOCK un SCROLL LOCK. Varat izmantot keybd_event (), lai programmā Windows NT ieslēgtu taustiņu NUM LOCK, CAPS LOCK un SCROLL LOCK. To pašu tehniku var izmantot, lai ieslēgtu CAPS LOCK un SCROLL LOCK sadaļā Windows 95, bet tas nedarbojas ar NUM LOCK.
Papildinformācija
Izmantojot tālāk sniegto parauga programmu, tiek ieslēgts CIPARSLĒGA indikators, ja tas ir izslēgts. Šeit definētā funkcija SetNumLock simulē nospiežot taustiņu NUM LOCK, izmantojot keybd_event () ar virtuālo atslēgu VK_NUMLOCK. Tam ir Būla vērtība, kas norāda, vai apgaismojums ir jāizslēdz (FALSE) vai ieslēgts (patiess). To pašu metodi var izmantot, lai nospiestu taustiņu CAPS LOCK (VK_CAPITAL) un taustiņu SCROLL LOCK (VK_SCROLL).
Koda paraugs
/* Compile options needed: */ #include <windows.h> void SetNumLock( BOOL bState ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (bState && !(keyState[VK_NUMLOCK] & 1)) || (!bState && (keyState[VK_NUMLOCK] & 1)) ) { // Simulate a key press keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); // Simulate a key release keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } void main() { SetNumLock( TRUE ); }