HOWTO: comutați tastele NUM LOCK, CAPS LOCK și SCROLL LOCK

Rezumat

Documentația pentru SetKeyboardState () spune corect că nu puteți utiliza acest API pentru a comuta tastele NUM LOCK, CAPS LOCK și SCROLL LOCK. Puteți utiliza keybd_event () pentru a comuta tastele NUM LOCK, CAPS LOCK și SCROLL LOCK sub Windows NT. Aceeași tehnică funcționează pentru basculând CAPS LOCK și SCROLL LOCK sub Windows 95, dar nu va funcționa pentru NUM LOCK.

Mai multe informații

Următorul exemplu de program transformă tasta NUM LOCK aprinsă dacă este dezactivată. Funcția SetNumLock definită aici simulează apăsarea tastei NUM LOCK, utilizând keybd_event () cu o cheie virtuală de VK_NUMLOCK. Este nevoie de o valoare booleană care indică dacă lumina trebuie dezactivată (FALSE) sau activată (TRUE). Aceeași tehnică poate fi utilizată pentru tasta CAPS LOCK (VK_CAPITAL) și tasta SCROLL LOCK (VK_SCROLL).

Exemplu de cod

   /* 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 );   }

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×