概要

SetKeyboardState() のドキュメントは、正しく言うと、この API を使って NUM LOCK、CAPS LOCK、SCROLL LOCK キーのトグル操作はできません。Windows NT では、keybd_event() を使って、NUM LOCK、CAPS LOCK、SCROLL LOCK キーのトグル操作を行えます。同じ手法で、Windows 95 で CAPS LOCK と SCROLL LOCK キーのトグル操作を行えますが、NUM LOCK に対しては使えません。

詳細

以下のサンプル プログラムは、NUM LOCK のライトを点灯、消灯します。ここに定義されている SetNumLock 関数は、VK_NUMLOCK の仮想キーで、keybd_event() を使って、NUM LOCK キーの押下をシミュレートします。ライトが点灯 (TRUE) されているか消灯 (FALSE) されているかは真偽値で示します。同じ手法で、CAPS LOCK キー (VK_CAPITAL) と SCROLL LOCK キー (VK_SCROLL) が使えます。

サンプルコード

   /* コンパイル オプションが必要   */   #include <windows.h>   void SetNumLock( BOOL bState )   {      BYTE keyState[256];      GetKeyboardState((LPBYTE)&keyState);      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||          (!bState && (keyState[VK_NUMLOCK] & 1)) )      {      // キーの押下を行う         keybd_event( VK_NUMLOCK,                      0x45,                      KEYEVENTF_EXTENDEDKEY | 0,                      0 );      // キーを離す         keybd_event( VK_NUMLOCK,                      0x45,                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,                      0);      }   }   void main()   {      SetNumLock( TRUE );   }

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID127190(最終更新日 1999-03-19) をもとに作成したものです。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。