GetKeySC

キーのスキャンコードを取得します。

SC := GetKeySC(KeyName)

パラメータ

KeyName

型:文字列

任意の1文字、またはキーリストのキー名の1つを指定します。例:B, 5, LWin, RControl, Alt, Enter, Escape.

あるいは、vkFFのような明示的な仮想キーコード、sc01Dのような明示的なスキャンコード、vk1Bsc001のようなVKとSCの組み合わせ(この順)であっても差し支えありません。なお、これらのコードは16進数である必要があります。

戻り値

型:整数

この関数は、指定されたキーのスキャンコードを返し、キーが無効であるかスキャンコードがない場合は0を返します。

備考

HotkeyGetKeyStateなどの内蔵機能でスキャンコードを使用する前に、Format("sc{:X}", sc_code)などで16進数形式に変換しておく必要があります。これに対して、DllCallを介して呼び出される外部関数は、通常、数値を直接使用します。

KeyNameが仮想キーコードまたは1文字に対応する場合、この関数は、スクリプトの現在のキーボードレイアウトを参照する特定のシステム関数を呼び出して、値をスキャンコードにマッピングしようとします。アクティブウィンドウのキーボード配列と異なる場合があります。

KeyNameがA-Zの範囲のASCII文字で、キーボードレイアウト内にマッピングがない場合、vk41-vk5Aの範囲の対応する仮想キーが予備として使用されます。この仮想キーは、上記のようにスキャンコードにマッピングされます。

キーボードレイアウトによっては、仮想キーコードとスキャンコードの1:1マッピングが定義されていないものがあります。複数の解釈が可能な場合、基本的なシステム機能はキーボードレイアウトで定義された順序に基づいて1つを選択することがほとんどですが、これは必ずしも最も一般的または論理的な選択とは限りません。

GetKeyVK, GetKeyName, GetKeyState, Key List, Format

Ctrlの16進数スキャンコードを取得し報告します。

sc_code := GetKeySC("LControl")
MsgBox Format("sc{:X}", sc_code) ; Reports sc1D