Shrnutí

Dokumentace pro SetKeyboardState () správně říká, že toto rozhraní API nemůžete použít k přepínání kláves NUM LOCK, CAPS LOCK a SCROLL LOCK. Pomocí keybd_event () můžete v systému Windows NT přepínat klávesy NUM LOCK, CAPS LOCK a SCROLL LOCK. Stejný postup je vhodný pro přepnutí CAPS LOCK a SCROLL LOCK v rámci systému Windows 95, ale nefunguje pro funkci NUM LOCK.

Další informace

V následujícím ukázkovém programu se zapnutí funkce NUM LOCK zapne, pokud je vypnutá. Funkce SetNumLock, kterou tady definujete, simuluje stisknutím klávesy NUM LOCK klávesu keybd_event () s virtuálním klíčem VK_NUMLOCK. Přebírá booleovskou hodnotu, která označuje, jestli má být světlo vypnuté (FALSE) nebo zapnuté (pravda). Stejnou techniku lze použít pro klávesu CAPS LOCK (VK_CAPITAL) a klávesu SCROLL LOCK (VK_SCROLL).

Ukázkový kód

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

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti

Projít školení >

Získejte nové funkce jako první

Připojit se k programu Microsoft Insider >

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×