キーボードを操作します。キーの状態を調べるにはGETKEYSTATE関数、文字列を送信する場合はSENDSTR関数を使います。
- 構文
- void = KBD( 仮想KEY, 状態, ms )
- 引数
- 戻り値
SENDSTR関数との違い
SENDSTR関数は文字列を送信するのに対し、KBD関数はキー入力を行います。そのためIMEの状態(日本語入力か半角入力かなど)によって入力される文字が変わってきます。入力する文字列が決まっている場合はSENDSTR関数、キーボードを押したい場合はKBD関数を使いましょう。
以下に示す2つのプログラムはメモ帳を起動し、AIUEOを順に押してく例。同じAIUEOと押していく処理でもIMEの状態で結果が変わります。
2つのプログラムの違いはGETKEYSTATE関数(4行目)の前に!があるかないかだけです。日本語入力と半角入力を意図的に変えています。
まず半角で入力したとき。
DIM ID = EXEC("notepad")
CTRLWIN(ID, ACTIVATE)
IF GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI,CLICK)
KBD(VK_A)
KBD(VK_I)
KBD(VK_U)
KBD(VK_E)
KBD(VK_O)- 結果
aiueo
次に日本語で入力したとき。
DIM ID = EXEC("notepad")
CTRLWIN(ID, ACTIVATE)
IF !GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI,CLICK)
KBD(VK_A)
KBD(VK_I)
KBD(VK_U)
KBD(VK_E)
KBD(VK_O)- 結果
あいうえお
仮想キーコード一覧
以下は日本語環境で主流の109キーボードのキー配列を表したものです。
以下の画像は直接入力モードでCapsLockが解除されているときの入力値をまとめたものです。赤字が仮想キーコードの値、青字がShiftキーを押しながら入力したときの文字、緑字はテンキーでNumLockを解除しているときの値です。
キー名にあるOEM(Original Equipment Manufacturer)固有とはキーボードメーカーがボタンを拡張できるように予め予約されたキーのことです。
以下は仮想キーコードをまとめた表です。Shift列はShiftを押しながら対応キーを押したときに入力される文字です。これらの入力方法はショートカットキーを実行(修飾子キーが1つ)を参照してください。
マウス操作はBTN関数を使います。
| 値 | 定数名 | 説明 | キー | Shift |
|---|---|---|---|---|
| 1 | VK_LBUTTON | マウスの左ボタン | ||
| 2 | VK_RBUTTON | マウスの右ボタン | ||
| 3 | VK_CANCEL | コントロール・ブレイク処理(定義なし) | ||
| 4 | VK_MBUTTON | マウスの中央ボタン(3ボタンマウス) | ||
| 5 | VK_XBUTTON1 | マウスの第1拡張ボタン(定義なし) | ||
| 6 | VK_XBUTTON2 | マウスの第2拡張ボタン(定義なし) | ||
| 7 | ||||
| 8 | VK_BACK | Backspaceキー | Backspace< | |
| 9 | VK_TAB | Tabキー | Tab | |
| 10 | 予約済 | |||
| 11 | 予約済 | |||
| 12 | VK_CLEAR | Clearキー | Clear | |
| 13 | VK_RETURN | Enterキー | Enter | |
| 13 | VK_ENTER | Enterキー | Enter | |
| 14 | 予約済 | |||
| 15 | 予約済 | |||
| 16 | VK_SHIFT | Shiftキー | Shift | |
| 17 | VK_CTRL | Ctrlキー | Ctrl | |
| 17 | VK_CONTROL | Ctrlキー | Ctrl | |
| 18 | VK_ALT | Altキー | Alt | |
| 18 | VK_MENU | Altキー | Alt | |
| 19 | VK_PAUSE | Pauseキー | Pause | |
| 20 | VK_CAPITAL | CapsLockキー | CapsLock | |
| 21 | VK_KANA | IME かなモード | ||
| 22 | 未定義 | |||
| 23 | VK_JUNJA | IME Junjaモード | ||
| 24 | VK_FINAL | IME ファイナルモード | ||
| 25 | VK_KANJI | IME 漢字モード | ||
| 26 | 未定義 | |||
| 27 | VK_ESC | Escキー | Esc | |
| 27 | VK_ESCAPE | Escキー | Esc | |
| 28 | VK_CONVERT | IME 変換 | 変換 | |
| 29 | VK_NONCONVERT | IME 無変換 | 無変換 | |
| 30 | VK_ACCEPT | IME 使用可能 | ||
| 31 | VK_MODECHANGE | IME モード変換要求 | ||
| 32 | VK_SPACE | スペースキー | Space | |
| 33 | VK_PRIOR | PageUpキー | PageUp | |
| 34 | VK_NEXT | PageDownキー | PageDown | |
| 35 | VK_END | Endキー | End | |
| 36 | VK_HOME | Homeキー | Home | |
| 37 | VK_LEFT | ←キー | ← | |
| 38 | VK_UP | ↑キー | ↑ | |
| 39 | VK_RIGHT | →キー | → | |
| 40 | VK_DOWN | ↓キー | ↓ | |
| 41 | VK_SELECT | Selectキー | ||
| 42 | VK_PRINT | Printキー | ||
| 43 | VK_EXECUTE | Executeキー | ||
| 44 | VK_SNAPSHOT | PrintScreenキー | PrintScree | |
| 45 | VK_INSERT | Insertキー | Insert | |
| 46 | VK_DELETE | Deleteキー | Delete | |
| 47 | VK_HELP | Helpキー | ||
| 48 | VK_0 | 0キー | 0 | |
| 49 | VK_1 | 1キー | 1 | ! |
| 50 | VK_2 | 2キー | 2 | " |
| 51 | VK_3 | 3キー | 3 | # |
| 52 | VK_4 | 4キー | 4 | $ |
| 53 | VK_5 | 5キー | 5 | % |
| 54 | VK_6 | 6キー | 6 | & |
| 55 | VK_7 | 7キー | 7 | ' |
| 56 | VK_8 | 8キー | 8 | ( |
| 57 | VK_9 | 9キー | 9 | ) |
| 58 | 未定義 | |||
| 59 | 未定義 | |||
| 60 | 未定義 | |||
| 61 | 未定義 | |||
| 62 | 未定義 | |||
| 63 | 未定義 | |||
| 64 | 未定義 | |||
| 65 | VK_A | Aキー | a | A |
| 66 | VK_B | Bキー | b | B |
| 67 | VK_C | Cキー | c | C |
| 68 | VK_D | Dキー | d | D |
| 69 | VK_E | Eキー | e | E |
| 70 | VK_F | Fキー | f | F |
| 71 | VK_G | Gキー | g | G |
| 72 | VK_H | Hキー | h | H |
| 73 | VK_I | Iキー | i | I |
| 74 | VK_J | Jキー | j | J |
| 75 | VK_K | Kキー | k | K |
| 76 | VK_L | Lキー | l | L |
| 77 | VK_M | Mキー | m | M |
| 78 | VK_N | Nキー | n | N |
| 79 | VK_O | Oキー | o | O |
| 80 | VK_P | Pキー | p | P |
| 81 | VK_Q | Qキー | q | Q |
| 82 | VK_R | Rキー | r | R |
| 83 | VK_S | Sキー | s | S |
| 84 | VK_T | Tキー | t | T |
| 85 | VK_U | Uキー | u | U |
| 86 | VK_V | Vキー | v | V |
| 87 | VK_W | Wキー | w | W |
| 88 | VK_X | Xキー | x | X |
| 89 | VK_Y | Yキー | y | Y |
| 90 | VK_Z | Zキー | z | Z |
| 91 | VK_WIN | Windowsキー | 左 | |
| 92 | VK_START | Windowsキー | 左 | |
| 92 | VK_RWIN | 右Windowsキー | 右 | |
| 93 | VK_APPS | アプリケーションキー | ||
| 94 | 予約済 | |||
| 95 | VK_SLEEP | コンピュータスリープキー | ||
| 96 | VK_NUMPAD0 | テンキーの0キー | テンキーの0 | Insert |
| 97 | VK_NUMPAD1 | テンキーの1キー | テンキーの1 | End |
| 98 | VK_NUMPAD2 | テンキーの2キー | テンキーの2 | ↓ |
| 99 | VK_NUMPAD3 | テンキーの3キー | テンキーの3 | PageDown |
| 100 | VK_NUMPAD4 | テンキーの4キー | テンキーの4 | ← |
| 101 | VK_NUMPAD5 | テンキーの5キー | テンキーの5 | |
| 102 | VK_NUMPAD6 | テンキーの6キー | テンキーの6 | → |
| 103 | VK_NUMPAD7 | テンキーの7キー | テンキーの7 | Home |
| 104 | VK_NUMPAD8 | テンキーの8キー | テンキーの8 | ↑ |
| 105 | VK_NUMPAD9 | テンキーの9キー | テンキーの9 | PageUp |
| 106 | VK_MULTIPLY | テンキーの*キー | テンキーの* | |
| 107 | VK_ADD | テンキーの+キー | テンキーの+ | |
| 108 | VK_SEPARATOR | 区切り記号キー | ||
| 109 | VK_SUBTRACT | 減算記号キー | テンキーの- | |
| 110 | VK_DECIMAL | 小数点キー | テンキーの. | Delete |
| 111 | VK_DIVIDE | 除算記号キー | テンキーの/ | |
| 112 | VK_F1 | F1キー | F1 | |
| 113 | VK_F2 | F2キー | F2 | |
| 114 | VK_F3 | F3キー | F3 | |
| 115 | VK_F4 | F4キー | F4 | |
| 116 | VK_F5 | F5キー | F5 | |
| 117 | VK_F6 | F6キー | F6 | |
| 118 | VK_F7 | F7キー | F7 | |
| 119 | VK_F8 | F8キー | F8 | |
| 120 | VK_F9 | F9キー | F9 | |
| 121 | VK_F10 | F10キー | F10 | |
| 122 | VK_F11 | F11キー | F11 | |
| 123 | VK_F12 | F12キー | F12 | |
| 124 | VK_F13 | VK_F13 | F13 | |
| 125 | VK_F14 | VK_F14 | F14 | |
| 126 | VK_F15 | VK_F15 | F15 | |
| 127 | VK_F16 | VK_F16 | F16 | |
| 128 | VK_F17 | VK_F17 | F17 | |
| 129 | VK_F18 | VK_F18 | F18 | |
| 130 | VK_F19 | VK_F19 | F19 | |
| 131 | VK_F20 | VK_F20 | F20 | |
| 132 | VK_F21 | VK_F21 | F21 | |
| 133 | VK_F22 | VK_F22 | F22 | |
| 134 | VK_F23 | VK_F23 | F23 | |
| 135 | VK_F24 | VK_F24 | F24 | |
| 136 | VK_NAVIGATION_VIEW | 割当無し | ||
| 137 | VK_NAVIGATION_MENU | 割当無し | ||
| 138 | VK_NAVIGATION_UP | 割当無し | ||
| 139 | VK_NAVIGATION_DOWN | 割当無し | ||
| 140 | VK_NAVIGATION_LEFT | 割当無し | ||
| 141 | VK_NAVIGATION_RIGHT | 割当無し | ||
| 142 | VK_NAVIGATION_ACCEPT | 割当無し | ||
| 143 | VK_NAVIGATION_CANCEL | 割当無し | ||
| 144 | VK_NUMLOCK | NumLockキー | NumLock | |
| 145 | VK_SCROLL | ScrollLockキー | ScrollLock | |
| 146 | VK_OEM_NEC_EQUAL | |||
| 146 | VK_OEM_FJ_JISHO | |||
| 147 | VK_OEM_FJ_MASSHOU | |||
| 148 | VK_OEM_FJ_TOUROKU | |||
| 149 | VK_OEM_FJ_LOYA | |||
| 150 | VK_OEM_FJ_ROYA | |||
| 151 | 割当無し | |||
| 152 | 割当無し | |||
| 153 | 割当無し | |||
| 154 | 割当無し | |||
| 155 | 割当無し | |||
| 156 | 割当無し | |||
| 157 | 割当無し | |||
| 158 | 割当無し | |||
| 159 | 割当無し | |||
| 160 | VK_LSHIFT | 左Shiftキー | 左Shift | |
| 161 | VK_RSHIFT | 右Shiftキー | 右Shift | |
| 162 | VK_LCTRL | 左Ctrlキー | 左Ctrl | |
| 163 | VK_RCTRL | 右Ctrlキー | 右Ctrl | |
| 164 | VK_LALT | 左Altキー | 左Alt | |
| 164 | VK_LMENU | 左Altキー | 左Alt | |
| 165 | VK_RALT | 右Altキー | 右Alt | |
| 165 | VK_RMENU | 右Altキー | 右Alt | |
| 166 | VK_BROWSER_BACK | ブラウザーの戻るキー | ||
| 167 | VK_BROWSER_FORWARD | ブラウザーの進むキー | ||
| 168 | VK_BROWSER_REFRESH | ブラウザーの更新のキー | ||
| 169 | VK_BROWSER_STOP | ブラウザーの停止キー | ||
| 170 | VK_BROWSER_SEARCH | ブラウザーの検索キー | ||
| 171 | VK_BROWSER_FAVORITES | ブラウザーのお気に入りキー | ||
| 172 | VK_BROWSER_HOME | ブラウザーの開始およびホームキー | ||
| 173 | VK_VOLUME_MUTE | 音量ミュートキー | ||
| 174 | VK_VOLUME_DOWN | 音量ダウンキー | ||
| 175 | VK_VOLUME_UP | 音量アップキー | ||
| 176 | VK_MEDIA_NEXT_TRACK | 次のトラックキー | ||
| 177 | VK_MEDIA_PREV_TRACK | 前のトラックキー | ||
| 178 | VK_MEDIA_STOP | メディア停止キー | ||
| 179 | VK_MEDIA_PLAY_PAUSE | メディア再生/一時停止キー | ||
| 180 | VK_LAUNCH_MAIL | メール起動キー | ||
| 181 | VK_LAUNCH_MEDIA_SELECT | メディア選択キー | ||
| 182 | VK_LAUNCH_APP1 | アプリケーション1起動キー | ||
| 183 | VK_LAUNCH_APP2 | アプリケーション2起動キー | ||
| 184 | 予約済 | |||
| 185 | 予約済 | |||
| 186 | VK_OEM_1 | OEM1キー | : | * |
| 187 | VK_OEM_PLUS | +キー | ; | + |
| 188 | VK_OEM_COMMA | ,キー | , | < |
| 189 | VK_OEM_MINUS | -キー | - | = |
| 190 | VK_OEM_PERIOD | .キー | . | > |
| 191 | VK_OEM_2 | OEM2キー | / | ? |
| 192 | VK_OEM_3 | OEM3キー | @ | ` |
| 193 | VK_ABNT_C1 | 予約済 | ||
| 194 | VK_ABNT_C2 | 予約済 | ||
| 195 | VK_GAMEPAD_A | 予約済 | ||
| 196 | VK_GAMEPAD_B | 予約済 | ||
| 197 | VK_GAMEPAD_X | 予約済 | ||
| 198 | VK_GAMEPAD_Y | 予約済 | ||
| 199 | VK_GAMEPAD_RIGHT_SHOULDER | 予約済 | ||
| 200 | VK_GAMEPAD_LEFT_SHOULDER | 予約済 | ||
| 201 | VK_GAMEPAD_LEFT_TRIGGER | 予約済 | ||
| 202 | VK_GAMEPAD_RIGHT_TRIGGER | 予約済 | ||
| 203 | VK_GAMEPAD_DPAD_UP | 予約済 | ||
| 204 | VK_GAMEPAD_DPAD_DOWN | 予約済 | ||
| 205 | VK_GAMEPAD_DPAD_LEFT | 予約済 | ||
| 206 | VK_GAMEPAD_DPAD_RIGHT | 予約済 | ||
| 207 | VK_GAMEPAD_MENU | 予約済 | ||
| 208 | VK_GAMEPAD_VIEW | 予約済 | ||
| 209 | VK_GAMEPAD_LEFT_THUMBSTICK_BUTTO | 予約済 | ||
| 210 | VK_GAMEPAD_RIGHT_THUMBSTICK_BUTT | 予約済 | ||
| 211 | VK_GAMEPAD_LEFT_THUMBSTICK_UP | 予約済 | ||
| 212 | VK_GAMEPAD_LEFT_THUMBSTICK_DOWN | 予約済 | ||
| 213 | VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT | 予約済 | ||
| 214 | VK_GAMEPAD_LEFT_THUMBSTICK_LEFT | 予約済 | ||
| 215 | VK_GAMEPAD_RIGHT_THUMBSTICK_UP | 予約済 | ||
| 216 | VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN | 割当無し | ||
| 217 | VK_GAMEPAD_RIGHT_THUMBSTICK_RIGH | 割当無し | ||
| 218 | VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT | 割当無し | ||
| 219 | VK_OEM_4 | OEM4キー | [ | { |
| 220 | VK_OEM_5 | OEM5キー | \ | | |
| 221 | VK_OEM_6 | OEM6キー | ] | } |
| 222 | VK_OEM_7 | OEM7キー | ||
| 223 | VK_OEM_8 | OEM8キー | ||
| 224 | 予約済 | |||
| 225 | VK_OEM_AX | OEM固有 | ||
| 226 | VK_OEM_102 | OEM102キー | \ | _ |
| 227 | VK_ICO_HELP | OEM固有 | ||
| 228 | VK_ICO_00 | |||
| 229 | VK_PROCESSKEY | IME PROCESSキー | ||
| 230 | VK_ICO_CLEAR | OEM固有 | ||
| 231 | VK_PACKET | キーボード以外の入力手段に使用される 32ビット仮想キー値の下位ワード | ||
| 232 | 割当無し | |||
| 233 | VK_OEM_RESET | OEM固有 | ||
| 234 | VK_OEM_JUMP | OEM固有 | ||
| 235 | VK_OEM_PA1 | OEM固有 | ||
| 236 | VK_OEM_PA2 | OEM固有 | ||
| 237 | VK_OEM_PA3 | OEM固有 | ||
| 238 | VK_OEM_WSCTRL | OEM固有 | ||
| 239 | VK_OEM_CUSEL | OEM固有 | ||
| 240 | VK_OEM_ATTN | OEM固有 | ||
| 241 | VK_OEM_FINISH | OEM固有 | ||
| 242 | VK_OEM_COPY | OEM固有 | ||
| 243 | VK_OEM_AUTO | OEM固有 | ||
| 244 | VK_OEM_ENLW | OEM固有 | ||
| 245 | VK_OEM_BACKTAB | OEM固有 | ||
| 246 | VK_ATTN | Attnキー | Attn | |
| 247 | VK_CRSEL | CrSelキー | CrSel | |
| 248 | VK_EXSEL | ExSelキー | ExSel | |
| 249 | VK_EREOF | Erase EOFキー | ||
| 250 | VK_PLAY | Playキー | ||
| 251 | VK_ZOOM | Zoomキー | ||
| 252 | VK_NONAME | 予約済 | ||
| 253 | VK_PA1 | PA1キー | ||
| 254 | VK_OEM_CLEAR | Clearキー | ||
| 901 | VK_RRETURN |
仮想キーコードの調べ方
UWSCを起動し、メイン画面の記録を押して仮想キーコードを調べたいキーをクリックします。STOPで記録を終了し、保存でUWSファイルに名前を付けて保存します。
保存したファイルをメモ帳やUWSC Debuggerで開くことで記録中に押されたキーの仮想キーコードを調べることができます。KBD関数の箇所が記録中に押されたキーコードです。
UWSCの設定の設定方法で低レベル記録、余分な時間、マウス移動は記録しないを選んでおくとキー入力の箇所を見つけやすくなります。高レベル記録ではキー入力は記録されないので注意してください。
使い方
キーをクリック
KBD関数の第一引数にクリックするキーの仮想キーコードを指定します。
KBD(キーコード)以下はAをクリックする例です。第一引数のみ指定した場合はそのキーをクリックします。
KBD(VK_A)キー入力が反応しない場合は、対象のウィンドウがアクティブになっていない可能性があるので、その場合はまずCTRLWIN関数でアクティブにしてからキー入力をします。以下はキー入力の対象がメモ帳の場合の書き方です。
DIM ID = GETID("メモ帳")
CTRLWIN(ID, ACTIVATE)
KBD(VK_A)キーを長押しする(一定時間押し続けてから離す)
Bを3秒間押し続けてから離します。
KBD(VK_B, DOWN)
SLEEP(3.000)
KBD(VK_B, UP)第三引数に時間を指定するとその時間だけ待機してから実行されるので、以下のように書き換えることもできます。時間はミリ秒なので3秒は1000倍して3000ミリ秒となります。
KBD(VK_B, DOWN)
KBD(VK_B, UP, 3000)一定時間待機後にキーをクリック
1秒間待機してからCをクリックします。
KBD(VK_C, CLICK, 1000)ショートカットキーを実行
ショートカットキーを実行するにはSCKEY関数を使うのが簡単ですが、KBD関数でも修飾子キーを押した状態で仮想キーを押すことで実行することもできます。修飾子キーとはCtrl、Shift、Alt、のことです。
修飾子キーが単数
修飾子キーが単数の場合、KBD関数で修飾子キーを押し下げた状態のままにし仮想キーをクリック、修飾子キーを離すという動作を行うことで実行することができます。
これをプログラムで書くと以下のようになります。
KBD(修飾子キー, DOWN)
KBD(仮想キーコード[, CLICK])
KBD(修飾子キー, UP)SCKEY関数を使って書くと以下のようになります。
SCKEY(0, 修飾子キー, 仮想キーコード)仮想キーコード一覧でShift列はShiftを押したまま対応キーを押すことで実行でき、これをプログラムにすると以下のようになります。対応キーには仮想キーコード一覧の値、もしくは変数名を指定します。
KBD(VK_SHIFT, DOWN)
KBD(対応キー[, CLICK])
KBD(VK_SHIFT, UP)例えば、_(アンダーバー)を入力するには、キーボードでShift+\と入力するようにKBD関数でもShiftを押したまま\をクリックする処理を書きます。
\(対応キー)または_(Shift列)を仮想キーコード一覧の表から探すと、値が226のVK_OEM_102(OEM102キー)が該当するキーであることがわかり、Shiftと一緒に押すことで_を入力することができます。実行した結果がわかるように、以下のプログラムではメモ帳に入力しています。
DIM ID = EXEC("notepad")
CTRLWIN(ID, ACTIVATE)
KBD(VK_SHIFT, DOWN)
KBD(VK_OEM_102)
KBD(VK_SHIFT, UP)修飾子キーが複数
修飾子キーが複数になっても基本的に1つのときと同じです。まずすべての修飾子キーを押したままの状態にしてから仮想キー(修飾子キー以外は)をクリックし、これまでに押した修飾子キーをすべて離します。仮想キーは修飾子キーをすべて押した状態にしたあとにクリックします。
KBD(修飾子キー1, DOWN)
KBD(修飾子キー2, DOWN)
KBD(仮想キーコード[, CLICK])
KBD(修飾子キー2, UP)
KBD(修飾子キー1, UP)以下はCtrl+Shift+ESCを押し、タスクマネージャーを起動します。修飾子キーのCtrlとShiftを押したままの状態にしてからESCをクリックし、修飾子キーを離します。
KBD(VK_CTRL, DOWN)
KBD(VK_SHIFT, DOWN)
KBD(VK_ESC, CLICK)
KBD(VK_CTRL, UP)
KBD(VK_SHIFT, UP)修飾子キーが2つの場合も、SCKEY関数を使うと以下のように書けます。
SCKEY(0, 修飾子キー1, 修飾子キー2, 仮想キーコード)タスクマネージャーの起動は以下のようになります。
SCKEY(0, VK_CTRL, VK_SHIFT, VK_ESC)修飾子キーが3つのときは以下のようになります。
KBD(修飾子キー1, DOWN)
KBD(修飾子キー2, DOWN)
KBD(修飾子キー3, DOWN)
KBD(仮想キーコード[, CLICK])
KBD(修飾子キー3, UP)
KBD(修飾子キー2, UP)
KBD(修飾子キー1, UP)SCKEY関数に書き換える場合は以下のようになります。
SCKEY(0, 修飾子キー1, 修飾子キー2, 修飾子キー3, 仮想キーコード)キーに変数を使う
キーに変数を使う場合は仮想キーコード一覧の定数名に対応する値を探し、KBD関数の第一引数にその値を指定します。
例えばVK_Aに対応する値は65なので、Aと入力するには以下のように書きます。
KBD(65)これは以下のように仮想キーコードで指定するのと同じ結果を返します。
KBD(VK_A)変数の場合キーコードで指定するのとは違い、連続する文字列を簡単に指定することもできます。
以下はA~Fを仮想キーコードで指定する書き方です。
KBD(VK_A)
KBD(VK_B)
KBD(VK_C)
KBD(VK_D)
KBD(VK_E)
KBD(VK_F)変数を使って書くと以下のようになります。
FOR key = 65 TO 70
KBD(key)
NEXT仮想キーコードは定数なので以下のように書くとわかりやすくなります。
FOR key = VK_A TO VK_F
KBD(key)
NEXTプログラム実行例
メモ帳の右クリックメニューを表示させる
DIM ID = EXEC("notepad")
CTRLWIN(ID, ACTIVATE)
KBD(VK_APPS, CLICK, 1000)パソコンの音量を上げる
パソコンの音量を上げます。Windows2000以降のOSの場合は仮想キーの操作で音量を上げ、Windows 2000より前のOSの場合はボリューム調整ツールを操作することで音量を上げます。
IFB KINDOFOS() >= 12 THEN
KBD(VK_VOLUME_UP)
ELSE
ID = EXEC("SNDVOL32.exe /t")
SETSLIDER(ID, GETSLIDER(ID, 1) - 10)
ENDIFパソコンの音量を下げる
パソコンの音量を下げます。Windows2000以降のOSの場合は仮想キーの操作で音量を下げ、Windows 2000より前のOSの場合はボリューム調整ツールを操作することで音量を下げます。
IFB KINDOFOS() >= 12
KBD(VK_VOLUME_DOWN)
ELSE
ID = EXEC("SNDVOL32.exe /t")
SETSLIDER(ID, GETSLIDER(ID, 1) + 10)
ENDIF特定のキーを連打する
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
SETHOTKEY(VK_SPACE, EMPTYPARAM, "toggle")
PUBLIC flg = FALSE
WHILE TRUE
DIM msg = "Spaceキーで切り替え<#CR>ESCキーで終了<#CR>"
IFB flg THEN
FUKIDASI(msg + "連打中")
KBD(VK_A, CLICK)
SLEEP(0.100)
ELSE
FUKIDASI(msg + "停止中")
ENDIF
WEND
PROCEDURE forceQuit()
EXITEXIT
FEND
PROCEDURE toggle()
flg = !flg
SLEEP(0.500)
FEND日本語入力をONにする
現在の入力モードが直接入力であれば半角/全角キーを押して日本語入力に切り替えます。
IF !GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI, CLICK)日本語入力をOFFにする
現在の入力モードが日本語入力であれば半角/全角キーを押して直接入力に切り替えます。
IF GETKEYSTATE(TGL_IME) THEN KBD(VK_KANJI, CLICK)NumLockをONにする
NumLockの状態を確認し、OFFであればNumLockキーを押してONにします。
IF !GETKEYSTATE(TGL_NUMLOCK) THEN KBD(VK_NUMLOCK)NumLockをOFFにする
NumLockの状態を確認し、ONであればNumLockキーを押してOFFにします。
IF GETKEYSTATE(TGL_NUMLOCK) THEN KBD(VK_NUMLOCK)CapsLockをONにする
CapsLockの状態を確認し、OFFであればCapsLockキーを押してONにします。
IF !GETKEYSTATE(TGL_CAPSLOCK) THEN KBD(VK_CAPITAL)CapsLockをOFFにする
CapsLockの状態を確認し、ONであればCapsLockキーを押してOFFにします。
IF GETKEYSTATE(TGL_CAPSLOCK) THEN KBD(VK_CAPITAL)ScrollLockをONにする
IF !GETKEYSTATE(TGL_SCROLLLOCK) THEN KBD(VK_SCROLL)ScrollLockをOFFにする
IF GETKEYSTATE(TGL_SCROLLLOCK) THEN KBD(VK_SCROLL)カナロックをONにする
IF !GETKEYSTATE(TGL_KANALOCK) THEN KBD(VK_KANA)カナロックをOFFにする
IF GETKEYSTATE(TGL_KANALOCK) THEN KBD(VK_KANA)関連記事
- SCKEY関数 (スクリプト関数)
- ショートカットキーを実行します。
- LOCKHARD関数 (スクリプト関数)
- ハードウェアからの入力を禁止します。
- LOCKHARDEX関数 (スクリプト関数)
- キーボード、マウスからの入力を禁止します。
