ホットキー

キーボードの特定のキー(の組み合わせ)を押したときに、それに応じて何かの処理を実行させる機能です。

例えば

  • FirefoxでCtrl+Homeを押したらすべてのタブを閉じる
  • Altキーを無効にする
  • Shift+BackspaceDelete にする

などができます。

SPONSORED LINK

概要と例

ホットキーの機能は、何かを実行するためのショートカットキーとして利用することができます。

#n::
	Run, Notepad
return

キーボード操作の直後に::を書くと、それ以降の処理をキーボード操作をきっかけに実行することができます。

#は Windowsキー を意味します。#n::で「Winキーを押しながらNキーを押すと、returnまでの処理を実行する」ことを意味します。

Runは、外部プログラムを実行するコマンドです。

今回は「Winキーを押しながらNキーを押すとメモ帳を起動する」というプログラムができました。

実行する処理が1行で書ける場合は、

#n::Run, Notepad

のように全体を1行で書くこともできます。

修飾キーを示す文字を並べて書くことでCtrl+Shift+Sのようなホットキーも記述できます。修飾子の順番は考慮されないので自由な順で問題ありません。

^!s::
	Send, よろしくお願いいたします。{Enter}---{Enter}佐藤一郎 ; この行ではアクティブウインドウに文字を入力します。
return

これを実行して、メモ帳やメーラーなどの入力欄でCtrl+Shift+Sを押すと

よろしくお願いいたします。
---
佐藤一郎

と入力されます。

修飾キー

# Winキー
! Altキー
^ Ctrlキー
+ Shiftキー
& 複数キーを同時に押す場合に使います。後述。
< 左右2つある修飾キーのうち、左側を明示的に指定したい場合に使います。
例えば、<!a は、左Altを押しながらAを押すことを表します。
> 左右2つある修飾キーのうち、右側を明示的に指定したい場合に使います。
<^>! 海外のキーボードにあるAltGrキーを表します。
日本語キーボード(JISキーボード)や、一般的な英語キーボード(USキーボード)には存在しません。
* 複数の修飾キーを表すワイルドカードです。
~ 元のホットキーの機能をそのままに、他の機能を追加します。
$ キーボードフックを強制します。
Up キーボードのキーを離すときに反応します。
以下の例では、左Winを左Ctrlに置き換えます。

*LWin::Send, {LControl Down}
*LWin Up::Send, {LControl Up}

「Up」は通常のホットキーにタイしても使えます。

^!r Up::MsgBox, Ctrl+Alt+R が押されて離されました。

これは & を使ったキーの同時押しでも使えます。

F1 & e Up::
SPONSORED LINK

条件付きホットキー

#IfWinActive/Exist や #If を使うことで、特定の条件下のみで実行されるホットキーが設定できます。

#IfWinActive, ahk_class Notepad
; ここ以降はメモ帳がアクティブなときのみのホットキー
; メモ帳がアクティブでないときの Ctrl-A は通常の機能のままになります。
^a::MsgBox, メモ帳がアクティブな状態で Ctrl-A が押されました。
#c::MsgBox, メモ帳がアクティブな状態で Win-C が押されました。

#IfWinActive
; ここ以降は条件無しのホットキー
#c::MsgBox, メモ帳がアクティブでない状態で Win-C が押されました。

カスタム修飾キー と その他の機能

CtrlShiftなどの修飾キーではなく、通常のキーを修飾キーのように使って、「Aを押しながらBを押したらこの機能」といったホットキーを実現することができます。

Numpad0 & Numpad1::MsgBox, Numpad0 が押されている間に Numpad1 が押されました。
Numpad0 & Numpad2::Run, Notepad.exe ; Note

上の例では、Numpad0(テンキーの0)を押しながら別のキーを押す操作をホットキーとしています。

公開日:
最終更新日:2016/07/13