Zusammenfassung
Die Dokumentation für SetKeyboardState () besagt richtig, dass Sie diese API nicht verwenden können, um die Tasten Num, Feststelltaste und Scroll zu wechseln. Sie können keybd_event () verwenden, um die Tasten Num, Feststelltaste und Scroll-Taste unter Windows NT umzuschalten. Das gleiche Verfahren funktioniert beim Umschalten der Feststell-und Scroll-Sperre unter Windows 95, wird aber bei der Num-Taste nicht funktionieren.
Weitere Informationen
Mit dem folgenden Beispielprogramm wird die Num-Taste leuchtet, wenn Sie deaktiviert ist. Die hier definierte Funktion SetNumLock simuliert das Drücken der Num-Taste, wobei keybd_event () mit einem virtuellen Schlüssel von VK_NUMLOCK. Es nimmt einen booleschen Wert an, der angibt, ob das Licht deaktiviert (falsch) oder ein (wahr) sein soll. Das gleiche Verfahren kann für die Feststelltaste (VK_CAPITAL) und die Scroll-Sperrtaste (VK_SCROLL) verwendet werden.
Beispiel Code
/* 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 ); }