下書き。気づいたこと・スクショ・実例を随時つけ足していく。
複数のAIを行き来して作業していると、同じ操作をひたすら手で繰り返すことになる。
中身は毎回違うのに、「コピー・切り替え・貼り付け・送信」という手の動きは完全に同じ。これをキー一発にまとめられたら、と思ったのがきっかけ。
最初は「マウス操作を録音して再生するソフト」を考えたが、AI相手だとこれは壊れやすい(理由は後述)。最終的に AutoHotkey(AHK)+ Window Spy に落ち着いたので、その記録。
TinyTask のような「マウスの座標ごと録って再生する」タイプは、決まったUIなら便利。でもAIとのやり取りでは2点で破綻する。
そこで方針を変えた。座標を録るのをやめて、「ウィンドウ名で切り替え+クリップボードで貼り付け」にする。さらに「長い1本の自動再生」ではなく、小さなショートカットを2〜3個に分けて、頃合いは自分で見て押す。これで壊れない。
Windows用の自動化スクリプトツール。今回うれしいのはこの2つ。
^!1:: と書くだけで「Ctrl+Alt+1にこの動作」が組める。単体で動いて軽い。個人のちょっとした自動化にちょうどいい。最新は v2 系。
メモ:v1 と v2 は文法が違う。ネットのサンプルは v1 が多いので、コピペするとき注意。この記事は v2 で書く。
AutoHotkey をインストールすると一緒に入ってくる付属ユーティリティで、正式名称は「Window Spy (AU3_Spy / WindowSpy.ahk)」です。マウスカーソル下のウィンドウ情報(ウィンドウタイトル、ウィンドウクラス(ahk_class)、プロセス名(ahk_exe)、マウス座標、カーソル下のピクセル色、選択中テキストなど)をリアルタイムで表示してくれるもので、AHKスクリプトを書くときに「対象ウィンドウをどう指定するか」を調べるのに使います。
AHKでウィンドウを指定するとき、何を手がかりに窓を見分けるかが肝になる。
| 手がかり | 例 | 安定性 |
|---|---|---|
| ウィンドウのタイトル | ChatGPT - Google Chrome |
△ ページやタブで変わる。脆い |
| 実行ファイル名 | ahk_exe chrome.exe |
◎ 起動し直しても変わらない |
| ウィンドウクラス | ahk_class Chrome_WidgetWin_1 |
◎ ターミナル等の識別に |
| 組み合わせ | ChatGPT ahk_exe chrome.exe |
◎ 一番堅い |
ポイントは、タイトルより ahk_exe(実行ファイル名)で指定する方が壊れにくいこと。
では、その ahk_exe やクラス名をどうやって知るのか。ここで Window Spy の出番。AHKに最初から付いてくるツールで、
ahk_exe / ahk_class などがリアルタイムで表示される「ウィンドウの正体をAPIで取得できないか」と身構えなくても、この付属ツールが答えを全部見せてくれる。
公式サイトからインストーラを落として入れるだけ。
https://www.autohotkey.com/v2/
AutoHotkey は、Windows 上でホットキーやテキスト展開、各種自動化スクリプトを作成できる無料・オープンソースのソフトウェアです。v2 は言語仕様の使いやすさと一貫性を高めることを目的に再設計されたバージョンで、2022年12月20日に v2.0.0 が正式リリースされました。なお後方互換性は犠牲にされているため、v1 用に書かれたスクリプトは原則としてそのままでは v2 で動作しません。
ライセンスは GNU General Public License(GPL)で、ソースコードは GitHub で公開されています。
対応 OS は Windows 7 以降です。v2.0-beta.4 以降は v1.1 と同居してインストールでき、どちらのバージョン向けのスクリプトも手間なく動かせるようになっています。
公式サイトの「Downloads」セクションから、インストーラー(exe)版または zip 版のどちらかを入手できます。一般的なユーザーには、操作が簡単なインストーラー版をおすすめします。
公式サイトのダウンロードページから最新のインストーラーをダウンロードし、ファイルを実行します。表示されるオプションを確認したうえで「Install」をクリックすればインストールは完了です。
zip 版を利用する場合は、まずダウンロードした zip ファイルをエクスプローラーで開きます(解凍は必須ではありません)。あるいは中身を一時フォルダーに展開してもかまいません。次に、その中にある Install.cmd を実行します。このとき「発行元を確認できませんでした。実行しますか?」といった警告が表示された場合は「実行」をクリックしてください。最後に、必要に応じてオプションを変更してから「Install」をクリックします。
インストールが完了すると、「Dash」と呼ばれる管理画面が自動的に開きます。ここからドキュメントの閲覧やスクリプトの作成など、各種機能にアクセスできます。
公式サイトでは、Google セーフ ブラウジングがダウンロード用ディレクトリを「有害なプログラムを含む」と誤検知することがある、と案内されています。これは誤検知であり、詳細は公式サイトの「Safe Browsing」の説明で確認できます。安心のため、ダウンロードは必ず公式サイト(autohotkey.com)または公式 GitHub から行うようにしてください。
AutoHotkey v2 のインストールは、公式サイトからインストーラーをダウンロードして実行するだけで簡単に完了します。インストール後は自動的に Dash が開くので、そこから最初のスクリプト作成に進めます。
公式の最新ドキュメントは Online Documentation で確認できます。
MCPをいれると、動作検証をAIができるようになる。。。はず。今から確認する。
AutoHotkey の MCP サーバーは GitHub 上に複数ありますが、同じ「ahk-mcp」という名前で代表的なものが2つあります。リンクと違いを一覧にまとめました。
| リポジトリ | URL | |
|---|---|---|
| ① | spyoungtech/ahk-mcp | https://github.com/spyoungtech/ahk-mcp |
| ② | TrueCrimeDev/ahk-mcp | https://github.com/TrueCrimeDev/ahk-mcp |
| 項目 | ① spyoungtech/ahk-mcp | ② TrueCrimeDev/ahk-mcp |
|---|---|---|
| 概要 | AutoHotkey 機能を MCP で公開し、Windows の自動化操作を AI から実行 | AutoHotkey v2 開発向け MCP サーバー(補完・診断・実行が中心) |
| 言語・基盤 | Python(Python MCP SDK / FastMCP) | TypeScript(Node.js 18+ / npm) |
| 主な目的 | PC操作の自動化(キーボード・マウス・ウィンドウ操作) | AHKスクリプトの開発支援(解析・検証・ドキュメント) |
| 主な機能 | ウィンドウ/アプリ列挙、キーボード・マウス制御、Windows API 照会、画面キャプチャ+OCR、マルチモニター対応 | ファイル操作、スクリプト解析・診断、スクリプト実行(プロセス追跡・ウィンドウ検出)、ドキュメント検索 |
| ツール数 | 33ツール | 25以上のツール(AHK_* 系) |
| OCR機能 | あり(mss / easyocr / numpy 使用) | なし |
| 対応OS | Windows 専用 | Windows(AHK v2 実行に必要) |
| 通信方式 | (記載なし/FastMCP標準) | Stdio・SSE 両対応 |
| 依存 | ahk-binary, ahk, mss, easyocr, numpy | Node.js, npm, AutoHotkey v2 |
| インストール | mcp install main.py(Claude Desktop へ簡単導入) |
git clone → npm install → npm run build → npm start |
| ライセンス | (明記なし) | MIT |
| Star数(参考) | 約18 | 約33 |
行き来する窓それぞれにマウスを乗せて、ahk_exe を控える。例:
chrome.exe(Edgeなら msedge.exe)WindowsTerminal.exe.ahk という拡張子のテキストファイルを作って、下のように書く。先頭の3行だけ自分の環境に合わせて書き換える。
#Requires AutoHotkey v2.0
#SingleInstance Force
; ── 対象ウィンドウ(Window Spy で調べて書き換える)──
BROWSER := "ahk_exe chrome.exe" ; ブラウザ
TERMINAL := "ahk_exe WindowsTerminal.exe" ; ターミナル
DESKAPP := "ahk_exe Claude.exe" ; デスクトップアプリ
; Ctrl+Alt+C : 今いる窓を全選択してコピー
^!c:: {
Send("^a")
Sleep(60)
Send("^c")
ClipWait(1) ; コピー完了を待つ(最大1秒)
}
; Ctrl+Alt+1/2/3 : クリップボードを各窓へ貼って送信
^!1:: PasteTo(BROWSER)
^!2:: PasteTo(TERMINAL)
^!3:: PasteTo(DESKAPP)
PasteTo(win) {
if !WinExist(win) { ; 窓が無ければ知らせて中断
ToolTip("窓が見つからない: " win)
SetTimer(() => ToolTip(), -1500)
return
}
WinActivate(win) ; 前面化はAHKに任せる(後述の地雷を回避)
WinWaitActive(win, , 1) ; 前面になるまで最大1秒待つ
Sleep(80)
Send("^v") ; 貼り付け
Sleep(120)
Send("{Enter}") ; 送信
}
^!1:: の ^ が Ctrl、! が Alt。つまりこの時点で Ctrl+Alt+1 に動作が割り当たっている。AHKを常駐させれば、どのアプリにいてもこのキーが効く。やりたかった「ショートカット一発」はこれで完成。
記号メモ:
^=Ctrl /!=Alt /#=Win /+=Shift
AHKを使うと勝手に処理してくれるが、仕組みを知っておくと事故りにくい。
SetForegroundWindow を呼んでも前に出てこないことがある。AHKの WinActivate はこの回避策を内蔵しているので、ただ呼べば前に出る。Ctrl+V で貼れるが、古いコンソールだと効かないことがある。その場合は貼り付けキーを変える。Ctrl+Tab や Ctrl+1/2)この記事は下書き。随時更新。