Porady: przełączanie klawiszy NUM LOCK, CAPS LOCK i SCROLL LOCK

Podsumowanie

Dokumentacja dotycząca SetKeyboardState () poprawnie informuje, że nie można użyć tego interfejsu API w celu przełączenia klawiszy NUM LOCK, CAPS LOCK i SCROLL LOCK. Za pomocą keybd_event () można przełączać klawisze NUM LOCK, CAPS LOCK i SCROLL LOCK w obszarze Windows NT. Ta sama technika działa w przypadku przełączenia klawisza CAPS LOCK i SCROLL LOCK w systemie Windows 95, ale nie będzie działać w przypadku klawisza NUM LOCK.

Więcej informacji

Poniższy przykładowy program włącza funkcję NUM LOCK zapala się, jeśli jest wyłączona. Funkcja setnumlock zdefiniowana w tym miejscu symuluje naciśnięcie klawisza NUM LOCK przy użyciu keybd_event () z kluczem wirtualnym VK_NUMLOCK. Przyjmuje wartość logiczną wskazującą, czy światło powinno być wyłączone (FAŁSZ), czy włączone (prawda). Ta sama technika może być używana w przypadku klawisza CAPS LOCK (VK_CAPITAL) i klawisza SCROLL LOCK (VK_SCROLL).

Przykładowy kod

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

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×