(83) GraphicsWindow.LastKey が返す文字列

(82) ファイルセレクタ で「GraphicsWindow.LastKey がどんな値を保持するのかの資料がないことに気づきました。」と言ったことを受けて、実際にどんな文字列が返ってくるのか調べてみました。

結論からいうと、LastKey が返すのは Windows 標準のキーコードの呼称でした。押されたキーの文字ではありません。( 押されたキーの文字は、GraphicsWindow.LastText で取得します。)
ので、「a」でも「A ( Shift+a )」でも、LastKey が返すのは大文字の「A」です。Shift キーなどの機能キーは、文字キーの戻り値に影響を与えません。

また、いくつかのキーは押されたことを認識できなかったり、Windows キーのように押されたことは認識できますが OS で規定された動作も実行される ( もともとの動作の抑制はできません ) という、自作のプログラムの中であまり使い道のない結果になっていたりします。


調査に使った Small Basic のプログラムは以下のとおり。

GraphicsWindow.MouseDown = MouseDownEvent
GraphicsWindow.KeyUp = KeyUpEvent
CrLf = Text.GetCharacter(13)
KeyList = ""

Sub KeyUpEvent
  KeyList = KeyList + crlf + GraphicsWindow.LastKey
EndSub

Sub MouseDownEvent
  If Mouse.IsLeftButtonDown = "True" Then
    GraphicsWindow.ShowMessage(KeyList,"LastKey List")
  Else
    KeyList = ""
  EndIf
EndSub

Small Basic ではファイル出力でもしない限り、出力データをプログラムの外側に持ち出すことが原則できません。

が、メッセージボックスは Windows 標準のものを使っていますので、フォーカス当てて Ctrl+C でコピーすると、メッセージボックに表示されている文章をそのままクリップボードに取り込めます。
ので、今回はこの仕組みを使って調査結果をコピー → Excel に貼付け → 整形、という手順で資料を作りました。

キー 戻り値 備考
フルキー0 D0  
フルキー1 D1  
フルキー2 D2  
フルキー3 D3  
フルキー4 D4  
フルキー5 D5  
フルキー6 D6  
フルキー7 D7  
フルキー8 D8  
フルキー9 D9  
テンキー0 NumPad0  
テンキー1 NumPad1  
テンキー2 NumPad2  
テンキー3 NumPad3  
テンキー4 NumPad4  
テンキー5 NumPad5  
テンキー6 NumPad6  
テンキー7 NumPad7  
テンキー8 NumPad8  
テンキー9 NumPad9  
F1 F1  
F2 F2  
F3 F3  
F4 F4  
F5 F5  
F6   (反応なし)
F7 F7  
F8 F8  
F9 F9  
F10 System F10キー押下動作も行われる
F11 F11  
F12 F12  
A A  
B B  
C C  
D D  
E E  
F F  
G G  
H H  
I I  
J J  
K K  
L L  
M M  
N N  
O O  
P P  
Q Q  
R R  
S S  
T T  
U U  
V V  
W W  
X X  
Y Y  
Z Z  
スペース Space  
テンキー+ Add  
フルキー- OemMinus  
テンキー- Subtract  
テンキー* Multiply  
フルキー/ OemQuestion  
テンキー/ Divide  
フルキーEnter Return  
テンキーEnter Return  
フルキー. OemPeriod  
テンキー. Decimal  
: Oem1  
@ Oem3  
Oem5  
] Oem6  
OemBackslash  
, OemComma  
[ OemOpenBrackets  
; OemPlus  
^ OemQuotes  
CapsLock   (反応なし)
NumLock NumLock  
半角/全角 奇数回目:DbeSbcsChar
偶数回目:OemEnlw
 
Up  
Down  
Left  
Right  
Esc Escape  
Tab Tab  
Insert Insert  
Delete Delete  
BackSpace Back  
PageUp PageUp  
PageDown Next  
Home Home  
End End  
PrintScreen Snapshot  
左Shift LeftShift  
右Shift RightShift  
左Ctrl LeftCtrl  
左Alt System Altキー押下動作も行われる
右Alt System Altキー押下動作も行われる
左Windows Lwin Windowsキー押下動作も行われる
アプリケーション Apps  
ボリューム+ VolumeDown  
ミュート VolumeMute  
ボリューム- VolumeUp  

右 Windows キー、右 Ctrl キー、無変換・変換・カタカナ/ひらがな/ローマ字キーは、私の使っているキーボードでは使えないので未調査です。また、ブラウザキーやメールキーなどキーボードによって存在するキー ( 私のキーボードにはありません ) についても未調査です。あしからずご了承ください。

コメントを投稿