【AutoHotkey】特定のアプリを開いている時だけ有効なショートカットキー

アイキャッチ画像 特定のアプリを開いている時だけ有効なショートカットキー

どーもヤマジです。

自由に自分の好きなショートカットキーを作成できるAutoHotkeyは大変便利ですが、新しく作ったショートカットキーが特定のアプリでは必要なかったり、逆に特定のアプリを開いている時だけ使いたいということもありますよね。

今回紹介するコードを使用すれば、こうした問題も解決できる上、同じショートカットキーをアプリ毎に異なる用途で使うことができるようになるので、非常に便利です。

やり方

特定のアプリの時だけ動作するコードのひな型

#IfWinActive,ahk_exe アプリ名.exe
入力するキー1 & 入力するキー2::
Send, {出力するキー}
return
#IfWinActive

例えば、私の場合

  1. パワポを開いている時だけ
  2. CapslockキーTを同時押ししたら
  3. CtrlキーGを押したことにする(パワポ内のオブジェクトをグループ化させるショートカットキー)

という感じにしたいので、この場合のコードは

#IfWinActive,ahk_exe POWERPNT.EXE              ;パワポを開いている時だけ
sc03A & t::                                    ;CapslockキーとTを同時押ししたら
Send, ^{g}                                     ;CtrlキーとGを押したことにする
return
#IfWinActive

になります。

アプリ名の調べ方

上述したコードの「ahk_exe アプリ名.exe」ですが、当然テキトーに書くと正しく動作しませんので、AutoHotkeyが認識している通りにアプリ名を記述する必要があります。

AHKのWindow Spyを開く
  1. タスクバー内のAutoHotkeyアイコンを右クリック
  2. メニューから[Window Spy]をクリック
step1 Window Spyを開く
タスクバーにAutoHotkeyアイコンが見つからないとき

タスクバーにアイコンが見つからないときは、大抵 ^ に隠れています。

step1 AHKがタスクバーにないとき
ショートカットキーを動作させたいアプリを開き、Window Spyで名称を確認
  1. ショートカットキーを動作させたいアプリを開き、そのアプリウィンドウのどこかをクリック
  2. Window Spyの上から3行目の[ahk_exe ~.exe]が、このアプリのAutoHotkeyにおいての名称なので、これをコピペして今回のコードにぶち込む(この例では、パワポの名称が表示されている)
step2 ahk_exe アプリ名.exeをチェック
以上です。

おわりに

今回紹介したコードを使えば、既にある自作ショートカットキーをアプリ毎に使いまわせるので、非常に便利です。

アプリによっては既にショートカットキーが割り当てられていたりするので、そことバッティングしないように設定したりもできます。

ナポリタン寿司さんという方が、今回紹介したコードをショートカットキーの例をコメント欄に書いてくださっているので、興味ある人はぜひこちらもご覧ください。

またナポリタン寿司さんは、便利なフリーソフトやWEBサービスについての記事をご自身のブログでとても分かりやすく書いてらっしゃいますので、PCの作業効率化などが好きな人は、ぜひこちらもチェックしてください!

それでは、最後まで読んでいただきありがとうございました。

1 COMMENT

ナポリタン寿司

おぉおーー!!早速記事にしてくださり感謝です。
毎度毎度非常に分かりやすくてとても勉強になります。

僕が試したコードでも問題なく動作していますが、やはりヤマジさんが紹介するちゃんとしたコードの書き方の方が綺麗でいいですね…。僕はいまいち「Return」について理解できてないんですが、恐らく必要なコマンドなんですよね…。

ということで、ここのコメント欄にてちゃんとした形のコードを書いときます。(他の方が混合しないように前のコメント削除してもらっても構いません)

;—-【Onenote】Ctrl+Dに日付挿入(Shift+Alt+D)割り当て—–
#IfWinActive,ahk_exe ONENOTE.EXE
^d::Send, +!d
return
#IfWinActive

;—-【Onenote】Ctrl+Tに時間挿入(Shift+Alt+T)割り当て—–
#IfWinActive,ahk_exe ONENOTE.EXE
^t::
Send, +!t
return
#IfWinActive

;—-【Onenote】Ctrl+Fに日付と時間挿入(Shift+Alt+f)割り当て—–
#IfWinActive,ahk_exe ONENOTE.EXE
^f::
Send, +!f
return
#IfWinActive

;—-【Excel】Ctrl+Dに日付挿入(Ctrl+;)割り当て—–
#IfWinActive,ahk_exe EXCEL.EXE
^d::
Send, ^;
return
#IfWinActive

;—-【Excel】Ctrl+Tに時間挿入(Ctrl+:)割り当て—–
#IfWinActive,ahk_exe EXCEL.EXE
^t::
Send, ^:
return
#IfWinActive

;—-【Excel】Ctrl+Fに日付と時間挿入(Ctrl+; & Ctrl+:)割り当て—–
#IfWinActive,ahk_exe EXCEL.EXE
^f::
Send, ^;{sc039}
Sleep, 100
Send, ^:
return
#IfWinActive

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)