メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

概要

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 の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

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

×