SDK32:NUM LOCK、CAPS LOCK、SCROLL LOCK キー操作

概要

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 ID
127190(最終更新日 1999-03-19) をもとに作成したものです。


ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

フィードバックをお送りいただきありがとうございます!

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×