メモ帳には、決まった一文をひと押しで入れたい。でも、メールを書いているときまで同じ動きになると困ります。キーに便利な動きを足すなら、「どのアプリで使うか」も一緒に決めておきたいところです。
今回はまず、メモ帳を選んだときだけ小さな確認表示を出します。使う場所を確かめてから、「確認しました。」と入力する動きへ替えてみましょう。
動きますOK
WindowsでAutoHotkey v2を使っている人向けです。AutoHotkeyは、キーを押したときの動きを自分で決められるソフト。その命令を書くファイルをスクリプトと呼び、ファイル名の末尾を.ahkにします。この記事ではインストール済みのv2で試します。v1用の書き方とは混ぜません。
1.テスト用の命令を、別ファイルに保存する
普段の割り当てをすぐ書き換えず、まず短いテスト用ファイルを作ります。メモ帳などの文字を編集できるソフトを開き、次のコードを貼り付けてください。
#Requires AutoHotkey v2.0
#HotIf WinActive("ahk_exe notepad.exe")
^!j::MsgBox "ここでは動きます"
#HotIf
名前をapp-scope-test.ahkにして保存します。日本語が文字化けしないよう、保存時の文字コードは「UTF-8 BOM付き」を選びます。ファイル名の最後が.ahk.txtになっていないかも見ておきましょう。[4]
この例で使うキーはCtrl+Alt+Jです。メモ帳の中では、もともとの同じキーの動きを置き換え得ます。自分が普段使う操作と重なるなら、空いている別の組合せで試してください。
2.メモ帳を選んで、キーを押す
- 保存した
app-scope-test.ahkをダブルクリックして、命令を動かします。 - メモ帳の文書をクリックします。いま操作するアプリをメモ帳にするためです。
- Ctrl+Alt+Jを押します。「ここでは動きます」と表示されれば、メモ帳を選んだことを判定できています。
- その表示を閉じ、別アプリをクリックしてから同じキーを押します。今度は、この確認表示が出ないかを見ます。
メモ帳を閉じる必要はありません。背後に開いたままでも、別アプリを操作している間は、この割り当てを使わないようにしています。ここまでが最初のテストです。[1][2]
3.合図が出たら、一文を入力する動きへ替える
使う場所を絞れたら、先ほど保存したapp-scope-test.ahkを編集用に開きます。これは命令を書いたファイルで、文字入力を試すメモ帳の文書とは別です。確認表示を出す一行を替えます。MsgBoxは「メッセージを出す」、SendTextは「文字をそのまま入力先へ送る」という命令です。全体を次のコードへ入れ替えてください。先ほどのコードに続けて足すのではありません。[6]
#Requires AutoHotkey v2.0
#HotIf WinActive("ahk_exe notepad.exe")
^!j::SendText "確認しました。"
#HotIf
- ファイルを上書き保存します。
- 通知領域(タスクバーの小さなアイコンが並ぶ場所)で、標準の緑色の「H」アイコンを探します。見えなければ、隠れたアイコンの一覧も開きます。マウスを重ねて、テスト用ファイルの名前を確かめます。そのアイコンを右クリックし、「Reload Script」で再読み込みします。保存しただけでは、動いている命令は更新されません。[4]
- メモ帳で、消してよい空の文書を開きます。
- 文字を入れたい場所をクリックしてから、Ctrl+Alt+Jを押します。「確認しました。」が入るか確かめます。
この試し方なら、まず「メモ帳かどうか」、次に「文字を入れられるか」を分けて見られます。既存の原稿や送信画面ではなく、消してよい文書で試すのがおすすめです。入力欄を選んでいなければ、アプリが合っていても思った場所には入りません。
仕組みは「使う場所」と「すること」の組合せ
一度動きを追ってから、コードの中身を見てみます。#HotIf WinActive("ahk_exe notepad.exe")は、「メモ帳をいま操作しているときだけ」という条件です。WinActiveは、指定したウィンドウが操作中か調べる命令。ahk_exe notepad.exeは、メモ帳を実行ファイル名で指定しています。[1][2][3]
その下の^!jがキーの組合せで、^がCtrl、!がAlt。::の右が、押したときにすることです。最初は確認表示、その後は文字入力へ、一行だけ役割を替えました。[5]
最後の、条件を書かない#HotIfも残します。これは「これより下で新しく決めるキーには、メモ帳という条件を付けない」という区切りです。それまでの割り当てを削除する行ではありません。[1]
別のアプリで使うなら、実行ファイル名を調べる
メモ帳での試験が終わってから、普段のアプリへ広げます。画面に見える製品名と、コードへ書く実行ファイル名が同じとは限らないため、AutoHotkey付属の「Window Spy」で確認します。これは、ウィンドウの名前や所属アプリを調べる道具です。[3][4]
- スクリプトのアイコンを右クリックして「Window Spy」を開きます。
- 「Follow Mouse」を外します。初期状態ではマウスの下、外すといま操作しているウィンドウを調べます。
- 使いたいアプリを前に出し、Window Spyに表示される
ahk_exeの後ろの実行ファイル名だけをコピーします。例えばahk_exe notepad.exeなら、コピーするのはnotepad.exeです。 - コードの
notepad.exeをコピーした実行ファイル名へ替え、まず確認表示のテストからやり直します。
補足:さらに使う場所を絞りたい人へ
実行ファイル名の変更までで、アプリ単位の使い分けは試せます。ここからは、同じアプリの中でも使う画面を絞りたい場合の補足です。
実行ファイル名で指定すると、同じアプリの別文書やダイアログも対象になり得ます。文書名で絞りたいならタイトル、画面の種類でも絞りたいならahk_class(ウィンドウの種類を識別する名前)を、実際に調べた値で組み合わせます。アプリを選ぶ条件だけでは、検索欄と本文欄まで区別できません。[3]
#HotIf WinActive("ahk_exe 実際の実行ファイル名 ahk_class 実際のクラス名")
上は絞り方の例で、そのまま使う完成コードではありません。また、WinActiveをWinExistへ替えると、背後に開いているだけでも条件を満たし得ます。今回のように、いま操作しているアプリだけで使いたいときは区別してください。[1][2]
条件はコード上で次の#HotIfまで続きます。波括弧で囲っても、この条件の範囲は変わりません。[1]
うまくいかないときは、最初の合図へ戻る
迷ったら、テスト用ファイルを最初の確認表示のコードへ戻して再読み込みします。メモ帳を選び、キーを押して、どこまでできるか見直しましょう。
対象アプリ
再読み込み・入力欄
- 最初の確認表示が出ない:ファイルを実行したか、編集後に再読み込みしたか、メモ帳を選んでいるかを確認します。別アプリへ替えた後なら、調べた実行ファイル名も見直します。
- 確認表示は出たが、文章へ替えると入力されない:
SendTextの行へ差し替えたか、再読み込みしたか、文字を受け取れる欄を選んだかを確認します。アプリの入力制限や権限の違いもあり得るため、むやみに権限を上げず、通常権限のメモ帳で試験をやり直します。[6][7] - 別アプリでも反応する:同じキーを条件なしで設定した行や、別スクリプト、アプリ自身の割り当ても確認します。この条件が対象外でも、それらまで止まるわけではありません。[1]
条件を調べる部分へ、ファイルコピーや通信のような時間のかかる処理は入れません。キー入力が待たされる原因になり得ます。試験を終えるときは、スクリプトのアイコンを右クリックし「Exit」で終了します。「Reload Script」は更新、「Exit」は停止、と分けて覚えると戻りやすくなります。[1][4]
使いたい場所を先に確かめ、できたら動きを一つ替える。便利なキーを増やすときも、この順で試すと、ほかのアプリへの影響を分けて確かめられます。
参照した公式資料
- AutoHotkey v2:#HotIf
- AutoHotkey v2:WinActive
- AutoHotkey v2:WinTitle
- AutoHotkey v2:Using the Program
- AutoHotkey v2:Hotkeys
- AutoHotkey v2:Send / SendText
- AutoHotkey v2:FAQ
2026年11月3日確認。AutoHotkey公式ドキュメントのv2ブランチに基づきます。識別情報や入力の受け取り方は、使用するアプリ・版・設定で確認してください。
