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

目次

マウス

一般的なボタン

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

高度なボタン

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

ホイール

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

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

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

キーボード

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

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

一般的なキー

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

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

Space Space(スペースバー)
Tab Tab(タブキー)
Enter Enter
Escape(またはEsc) Esc
Backspace(またはBS) Backspace

カーソル制御キー

名前 説明
ScrollLock ScrollLock(スクロールロックキー)。Ctrlが押されている間、ScrollLockCtrlBreakのキーコードを生成しますが、スキャンコードによってPauseと区別することができます。
Delete(またはDel) Del
Insert(またはIns) Ins
Home Home
End End
PgUp PgUp(ページアップキー)
PgDn 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のキーコードを生成するため、ホットキーには^NumLockの代わりに^Pauseを使う。
NumpadDiv /(除算)
NumpadMult *(乗算)
NumpadAdd +(加算)
NumpadSub -(減算)
NumpadEnter Enter

ファンクションキー

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

修飾キー

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

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

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

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

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

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

マルチメディア キー

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

名前 説明
Browser_Back 戻る
Browser_Forward 進む
Browser_Refresh 更新
Browser_Stop 中止
Browser_Search 検索
Browser_Favorites お気に入り
Browser_Home ホームページ
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の組み合わせに対応しているのは、Send関数、GetKeyName関数、GetKeyVK関数、GetKeySC関数、A_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. メニューの「View->Key history」を選択します
  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}"
}