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