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?

Jak zadowalająca jest jakość tłumaczenia?

Co wpłynęło na Twoje wrażenia?

Czy chcesz przekazać jakieś inne uwagi? (Opcjonalnie)

Dziękujemy za opinię!

×