ホットキーを設定します。設定したホットキーを入力することによりプロシージャを呼び出すことができます。
「VK」は「Virtual Key」の略で仮想キー、「MOD」は「MODifier key」の略で修飾子キーを意味します。
修飾子キーを複数指定する場合はORで繋げます。
HOTKEY_VKはキーコード(数値)なので、文字に変換する場合は「CHR(HOTKEY_VK)」と記述します。
HOTKEY_MODから指定したキーが押されたかを判断するには 、「HOTKEY_MOD AND 修飾子キー」が0か0以外かで判断できます。「HOTKEY_MOD AND MOD_CONTROL」が0でなければCtrlが押されたということになります。
- 構文
- Boolean = SETHOTKEY( キーコード, 修飾子キー, Procedure名 )
- 引数
- キーコード (#sethotkey)必須
- 使用するキーコード
- 修飾子キー (#sethotkey)省略可
- (省略可、複数指定化)
MOD_ALT(Alt)
MOD_CONTROL(Ctrl)
MOD_SHIFT(Shift)
MOD_WIN(Win) - Procedure名 (String)省略可
- UWSC側の呼び出される Procedure名、省略された場合にはホットキーの解除
- 戻り値
- TRUE
- 成功
- FALSE
- 失敗
Procedure内にて変数 HOTKEY_VKにキーコード、HOTKEY_MODに修飾子キーが格納されている。
ホットキーの設定/解除
すべてのホットキーを解除
SETHOTKEY関数は第三引数を省略するとホットキーの解除ができます。keyは1から255の範囲と901、modiferはMOD_ALT、MOD_CONTROL、MOD_SHIFT、MOD_WINの1,2,4,8と2のべき乗なのでPOWER関数を使いすべてのキーの組み合わせを多重ループで回し解除します。
ホットキーの呼び出しと文字入力を同時に行う方法
ホットキーでプロシージャを呼び出された際、その文字は入力されなくなります。プロシージャの呼び出した際にその文字も入力したい場合、呼び出したプロシージャ内に「KBD(HOTKEY_VK)」と記述することで文字入力ができるようになります。
以下はA〜Zにホットキーを設定し、keyInput関数を呼び出すプログラム。例えばキーボードでAと打つとプロシージャが呼び出されるがAが文字として入力はされませんが、KBD関数を使うことでプロシージャを呼び出しつつ文字も入力できるようにします。
以下のプログラムをKBD関数ありとなしで実行しメモ帳で文字入力をしてみると違いがわかると思います。
修飾子キー単独で検知
SETHOTKEY関数の第一引数にEMPTYPARAMを指定することで、修飾子キーのみでホットキーを設定することができます。
呼び出されたプロシージャ内の特殊変数HOTKEY_MODに修飾子キーが格納されているので、検知されたキーの判定に使うことができます。
修飾子キーの左右判定
SETHOTKEY関数の修飾子キー(MOD_*)では左右を区別することはできないので、呼び出された関数の中でGETKEYSTATE関数を使い左右の判定をします。
左Alt・右Alt が押されたとき。
左Ctrl・右Ctrlが押されたとき。
左Shift・右Shiftが押されたとき。
仮想キー一覧
| 値 | 定数名 | 説明 | キー | 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 |
プログラム実行例
画像をクリップボードにコピーする
Alt+Sでマウスカーソル下のオブジェクトのスクリーンショット画像をクリップボードにコピーします。
アイドル時間を取得
最後にキーボードまたはマウスを操作してから経過した時間をミリ秒で取得します。
マウスカーソル下のウィンドウの情報を吹き出しに表示
特定のキーを連打する
現在のカーソル位置を吹き出しに表示
プログラム実行時からの経過時間を表示(ESCで終了)
メールの受信を検知(Outlook)
メールを受信したら日時を出力する。日時はメールの受信日時ではなくOutlookが受信を検知した日時。
マウスカーソル下のスクロールバー情報を取得
Yahoo!ファイナンスから米ドル・ユーロ・豪ドルのレートを取得
ファイルを開いているプロセスを調べる
キーボードからの入力を1文字ずつずらす
キーからのA→B、B→C、…、Z→Aのように1文字後ろにずらします。
マウス位置の色を取得
マウス位置の色情報を取得します。
キャレット(カーソル)位置を取得
CLKITEMで操作できる項目を取得
参考文献
関連記事
- SCKEY関数 (スクリプト関数)
- ショートカットキーを実行します。
- GETKEYSTATE関数 (スクリプト関数)
- キーコードの状態を取得します。
