キーリスト(キーボード、マウス、コントローラ)

目次

マウス

一般的なボタン

名前 説明
LButton マウスのプライマリボタンです。どの物理ボタンに対応するかはシステムの設定によりますが、デフォルトでは左ボタンになっています。
RButton マウスの2次ボタンです。どの物理ボタンに対応するかはシステムの設定によりますが、デフォルトでは右ボタンになります。
MButton 中ボタンまたはホイールボタン

高度なボタン

名前 説明
XButton1 マウスの4番目のボタン。通常、Browser_Backと同じ機能を実行します。
XButton2 マウスの5番目のボタン。通常、Browser_Forwardと同じ機能を実行します。

ホイール

名前 説明
WheelDown ホイールを下(手前)に回します。
WheelUp ハンドルを上(自分から離れる方向に)に回します。
WheelLeft
WheelRight

左右にスクロールします。

2 つ目のホイールがある、またはホイールを左右に傾けることができる一部のマウスでは、ホットキーとして使用できます。 場合によっては、マウスにバンドルされているソフトウェアを使用して、この機能を制御する必要があります。特定のマウスに関係なく、Send関数とClick関数を使って、それをサポートするプログラムで水平方向にスクロールできます。

キーボード

注:文字と数字のキーの名前は、その1文字または数字と同じです。事例:b は B で、5 は 5です。

任意の 1 文字をキー名として使用できますが、その意味(スキャンコードまたは仮想キーコード)は現在のキーボード レイアウトによって異なります。さらに、一部の特殊文字は状況に応じてエスケープするか、中かっこで囲む必要がある場合があります。a-zまたはA-Zの文字は、現在のキーボードレイアウトに含まれていなくても、対応する仮想キーコード(通常はvk41~vk5A)を参照するために使用できます。

一般的なキー

名前 説明
CapsLock CapsLock(キャプスロックキー)

注: Windows IME は、CapsLock の検出と機能に干渉する場合があります。詳細については、CapsLock と IME を参照してください。

Space Space (スペースバー)
Tab Tab (タブキー)
エンター エンター
Escape (またはEsc) エスケープ
Backspace(またはBS) バックスペース

カーソル制御キー

名前 説明
ScrollLock ScrollLock (スクロールロックキー)Ctrlキーが押されている間、ScrollLockキーはCtrlBreakのキーコードを生成しますが、スキャンコードによってPauseキーと区別することができます。
Delete(またはDel) デリート
Insert(またはIns) 挿入
ホーム ホーム
エンド エンド
PgUp PgUp(ページアップキー)
PgDn ページダウン(ページダウンキー)
Up (上矢印キー)
Down (下矢印キー)
Left (左矢印キー)
Right (右矢印キー)

テンキー

システムの動作上、スラッシュで区切られた以下のキーは、NumLockのON/OFFによって識別が異なります。NumLockがOFFの状態でShiftを押すと、一時的にShiftが解除され、NumLockがONであるかのように動作します。

名前 説明
Numpad0 / NumpadIns0 / Ins
Numpad1 / NumpadEnd1 / End
Numpad2 / NumpadDown2 /
Numpad3 / NumpadPgDn3 / PgDn
Numpad4 / NumpadLeft4 /
Numpad5 / NumpadClear5/ 通常は何もしない
Numpad6 / NumpadRight6 /
Numpad7 / NumpadHome7 / Home
Numpad8 / NumpadUp8 /
Numpad9 / NumpadPgUp9 / PgUp
NumpadDot / NumpadDel. / Del
NumLock NumLock (ナンバーロックキー)。Ctrl が押されている間、NumLockPauseのキー コードを生成するため、代わりにホットキーで ^Pause を使用します。 ^NumLock.
NumpadDiv /(除算)
NumpadMult *(乗算)
NumpadAdd +(加算)
NumpadSub -(減算)
NumpadEnter エンター

ファンクションキー

名前 説明
F1 - F24 ほとんどのキーボードの上部にある12個以上のファンクションキーです。。

修飾キー

名前 説明
LWin Win<# ホットキー プレフィックスに対応します。
RWin

Win. ># ホットキー プレフィックスに対応します。

注: Ctrl/Alt/Shiftとは異なり、OSがサポートしていないため、汎用的/中立的な「Win」キーは存在しない。ただし、# 修飾子を含むホットキーは、Winのいずれかでトリガーできます。

Control (or Ctrl) Ctrl. ホットキー (Control::) として、チルダ プレフィックスがない限り、リリース時に起動します。^ ホットキー プレフィックスに対応します。
Alt Alt. ホットキー (Alt::) として、チルダ プレフィックスがない限り、リリース時に起動します。ホットキーのプレフィックスに対応します。
Shift Shift. ホットキー(Shift::)として、チルダの接頭辞がない限り、リリース時に起動します。ホットキーのプレフィックス+に対応します。
LControl (or LCtrl) Ctrl. ホットキーのプレフィックス<^に対応します。
RControl (or RCtrl) Ctrl. ホットキーのプレフィックス>^に対応します。
LShift Shift. <+ホットキーのプレフィックスに対応します。
RShift Shift. ホットキーの接頭辞>+に対応します。
LAlt Alt. ホットキーのプレフィックス<!に対応します。
RAlt

Alt. ホットキーのプレフィックス>!に対応します。

注:キーボードレイアウトにRAltの代わりにAltGrがある場合、ここで説明されているように、<^>! を介してホットキーのプレフィックスとして使用することができます。In addition, LControl & RAlt:: would make AltGr itself into a hotkey.

マルチメディア キー

以下の各キーに割り当てられている機能は、Windowsのレジストリを変更することで上書きすることができます。この表は、Windowsのほとんどのバージョンで、各キーのデフォルトの機能を示しています。

名前 説明
Browser_Back 戻る
Browser_Forward 進む
Browser_Refresh 更新
Browser_Stop ストップ
Browser_Search 検索
Browser_Favorites お気に入り
Browser_Home Homepage
Volume_Mute 音量をミュートする
Volume_Down 音量を下げる
Volume_Up 音量を上げる
Media_Next 次のトラック
Media_Prev 前のトラック
Media_Stop ストップ
Media_Play_Pause 再生/一時停止
Launch_Mail デフォルトのメールソフトを起動します。
Launch_Media デフォルトのメディアプレーヤーを起動します。
Launch_App1 PCを起動します。(以前のマイコンピュータまたはコンピュータ)
Launch_App2 電卓を起動します。

その他のキー

名前 説明
AppsKey Menu. 右クリックのコンテキストメニューを呼び出すためのキーです。
PrintScreen PrtSc(プリントスクリーンキー)
CtrlBreak Ctrl+Pause または Ctrl+ScrollLock
Pause PauseまたはCtrl+NumLockCtrlを押している間は、PauseCtrlBreakNumLockPauseのキーコードを生成するので、ホットキーでは^Pauseの代わりに^CtrlBreakを使用します。
Help Help. これはおそらく、ほとんどのキーボードに存在しないと思います。通常F1とは異なります。
Sleep Sleep. なお、キーボードによってはスリープキーが効かない場合があります。
SCnnn キーのスキャンコードをnnnに指定します。上記以外の珍しいキーも認識します。詳しくは特殊キーをご覧ください。
VKnn

nnには、キーの 16 進数の仮想キーコードを指定します。このめったに使われない方法は、ある種のホットキーキーボードフックを必要としないようにもします。例えば、以下のホットキーはキーボードフックを使用しませんが、副作用として、HomeまたはNumpadHomeのいずれかを押すとトリガーされます。

^VK24::MsgBox "You pressed Home or NumpadHome while holding down Control."

既知の制限事項:*VK24~VK24など、キーボードフックを強制的に使用するVKホットキーは、両方のキーではなく、どちらか一方のキーに対して発火します(例:NumpadHomeはHomeではない)。VKnn方式の詳細については、特殊キーを参照してください。

警告:VKnnとSCnnnの組み合わせに対応しているのは、SendGetKeyNameGetKeyVKGetKeySCA_MenuMaskKeyのみです。それ以外の場合(または他の無効な接尾辞がある場合)には、鍵は認識されません。例えば、vk1Bsc001::はエラーを発生させます。

ゲームコントローラー(ゲームパッド、ジョイスティックなど)

注:歴史的な理由から、以下のボタンとコントロールの名前はジョイスティックを意味するJoyで始まります。しかし、通常はゲームパッドやステアリングホイールなど、他のゲームコントローラーにも使用できる。

Joy1からJoy32:コントローラーのボタン。コントローラのボタン番号を決定するには、以下のテストスクリプトを使用します。なお、^(control)、+(shift)などのホットキー接頭記号はサポートしていません(GetKeyStateで代替できます。)。また、コントローラボタンの押下を検出するように設計されているウィンドウでは、コントローラボタンの押下は常にアクティブウィンドウを「通過」することに注意してください。

以下のコントロール名はホットキーとして使用できませんが、GetKeyStateで使用できます:

例えば、Xbox Wireless/360コントローラーを使用する場合、JoyX/JoyYは左スティック、JoyR/JoyUは右スティック、JoyZは左右のトリガー、JoyPOVは方向パッド(Dパッド)となる。

複数のコントローラー:コンピュータに複数のコントローラがあり、最初のコントローラ以外のコントローラを使用する場合は、コントロール名の前にコントローラ番号(最大16)を含めます。例えば、2joy1は2つ目のコントローラーの最初のボタン。

注:スクリプトがコントローラを認識できない場合は、コントローラが1つしかなくても、コントローラ番号を1以外に指定してください。このような状況がどのように発生するのか、または正常かどうかは不明ですが、コントローラのテストスクリプトでコントローラ番号を実験することで、システムに該当するかどうかを判断することができます。

こちらも参照のこと:

ハンドヘルドリモコン

WinLIRCクライアントスクリプトにより、手持ちのリモコンからの信号に応答します。

特殊キー

キーボードやマウスに上記以外のキーがある場合でも、以下の手順でホットキーにすることができる場合があります。

  1. キーボードフックを使用するスクリプトが少なくとも1つ実行されていることを確認します。スクリプトにキーボードフックがあるかどうかは、スクリプトのメインウィンドウを開き、メニューバーから「表示->キー履歴」を選択することで確認できます。
  2. そのスクリプトのトレイアイコンをダブルクリックして、メインウィンドウを開きます。
  3. キーボードの「何れかのキー」を押します。
  4. メニューの "表示→キー履歴"を選択します。
  5. ページ下部までスクロールしてください。下の方に、キーのキーダウンイベントとキーアップイベントがあります。注:一部のキーはイベントが発生しないため、ここでは表示されません。この場合、キーボードドライバーやハードウェアが、AutoHotkeyがアクセスするには低すぎるレベルで扱うため、その特定のキーを直接ホットキーとすることはできません。解決策については、さらに以下をご覧ください。
  6. キーが検出可能な場合は、リストの2列目にある3桁の16進数値をメモしてください(例:159)。
  7. このキーをホットキーとして定義するには、次の例に従います。
    SC159::MsgBox ThisHotkey " was pressed." ; 159をキーの値で置き換えます。
    
    ThisHotkeyもご覧ください。

逆方向:他のキーを "ミステリー・キー"リマップするには、次のようにします:

; 159を上記で発見された値で置き換えてください。FFを(必要であれば)以下の値で置き換えます。
; キーヒストリー画面の最初の列で発見できる、 ;キーの仮想キーです。
#c::Send "{vkFFsc159}" ; 詳しくは Send {vkXXscYYY} をご覧ください。

別の解決策:キーまたはマウスボタンが「キー履歴」画面で検出できない場合は、次のいずれかをお試しください:

  1. マウスやキーボードに付属のソフトウェア(コントロールパネルやスタートメニューからアクセスできる場合もあります)を再設定して、「いずれかのキー」が他のキーストロークを送信するようにします。このようなキーストロークは、スクリプトのホットキーとして定義することができます。例えば、Ctrl+F1を送信するようにミステリーキーを設定した場合、スクリプトで^F1::を使うことで、間接的にそのキーをホットキーとして使用することができます。

  2. AHKHIDを試してみてください。また、RawInput*、USB HIDまたはAHKHIDなどのキーワードでフォーラムを検索してみるのもよいでしょう。

  3. 以下は最終手段であり、一般的には絶望的な場合にのみ試みるべきものです。成功する確率が低く、元に戻すのが困難な望まない副作用を引き起こす可能性があるからです。
    キーボードやマウスに付属している余分なソフトウェアを無効化または削除するか、OSに内蔵されているような標準的なドライバーに変更してください。これは、お使いのキーボードやマウスにそのようなドライバがあり、そのカスタムドライバやソフトウェアが提供する機能なしでいられることを前提としています。

CapsLock と IME

Windows IMEの一部の構成(英語キーボードで日本語入力など)では、CapsLockを使用してモードを切り替えます。このような場合、CapsLockはIMEによって抑制され、AutoHotkeyで検出することができない。ただし、Alt+CapsLockCtrl+CapsLockおよび、Shift+CapsLockのショートカットは、回避策で無効にすることができます。具体的には、キーアップを送信してIMEの状態を変更するが、キーボードフックに信号を送ってイベントを抑制することで、他の影響を防ぐことができる。その際、以下の機能を利用することができます。

; キーボードフックの取り付けが必要です。
InstallKeybdHook
SendSuppressedKeyUp(key) {
    DllCall("keybd_event"
        , "char", GetKeyVK(key)
        , "char", GetKeySC(key)
        , "uint", KEYEVENTF_KEYUP := 0x2
        , "uptr", KEY_BLOCK_THIS := 0xFFC3D450)
}

この関数をスクリプトにコピーするか、LibフォルダSendSuppressedKeyUp.ahkとして保存し、スクリプトに#Include <SendSuppressedKeyUp>を追加すると、次のように使えるようになります。

; IME の Alt+key ショートカットを無効にします。
~LAlt::SendSuppressedKeyUp "LAlt"

; ホットキーのテスト。
!CapsLock::MsgBox A_ThisHotkey

; IMEと互換性のある方法で、CapsLockをLCtrlにリマップします。
*CapsLock::
{
    Send "{Blind}{LCtrl DownR}"
    SendSuppressedKeyUp "LCtrl"
}
*CapsLock up::
{
    Send "{Blind}{LCtrl Up}"
}