摘要

SetKeyboardState ()的檔會正確指出您無法使用這個 API 來切換 NUM LOCK、CAPS LOCK 和 SCROLL LOCK 鍵。您可以使用 keybd_event ()來切換 [Windows NT] 下的 [NUM LOCK]、[大寫鎖定] 和 [滾動鎖定] 鍵。 相同的技術可在 Windows 95 下切換大寫鎖定和滾動鎖,但不會對 NUM LOCK 起作用。

其他相關資訊

下列範例程式會將 NUM LOCK 燈開啟(如果它是關閉狀態)。 在此處定義的 SetNumLock 函數會使用 keybd_event ()與虛擬鍵 VK_NUMLOCK 來類比 NUM LOCK 鍵。 它會採用一個布林值來指示光線應該是關閉(FALSE)還是開啟(TRUE)。使用相同的技術,就可以使用 CAPS LOCK 鍵(VK_CAPITAL)和滾動鎖定鍵(VK_SCROLL)。

範例程式碼

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

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。