AutoHotKey スクリプトをマシン起動時に管理者権限で自動起動するためのタスクスケジューラ設定

自分は US キーボード使いなので、AutoHotKey の alt-ime-ahk というスクリプトを使って、左右 Alt キーの空打ちで IME を切り替えている。

この AHK スクリプト、管理者権限で起動してあげないと、例えば Windows Terminal のウィンドウなんかで発動できないため、単にスタートアップに .ahk ファイルを置いておくだけでは管理者権限で起動できず困っていたのだ。

そこで、デスクトップ上に .ahk ファイルのショートカットを作り、このショートカットの設定から「管理者として実行」オプションを付けて置いておき、マシン起動時に自分でショートカットを開いて AutoHotKey を実行するようにしていた。

当然ながら、マシン起動時に自分で AutoHotKey スクリプトを起動する手間が増えて面倒臭い。

そこで調べたところ、タスクスケジューラを使うことで、管理者権限で AutoHotKey スクリプトを自動起動できた。

Win + R から taskschd.msc を入力してタスクスケジューラを起動する。「タスクの作成...」というメニュー項目から、以下のようにタスクを作成すれば良い。

タスクスケジューラ設定 1

タスクスケジューラ設定 2

↑ トリガーの設定はログオン時とし、念のために5秒程度の遅延を入れておいた。

タスクスケジューラ設定 3

↑ 「プログラムの開始」の設定は以下のようにする。

「開始 (オプション)」は、実行されるプログラム・スクリプトにとってのカレントディレクトリの指定となる。例えば .ahk ファイル内で Include を使って、相対パスで別の .ahk ファイルを読み込んでいるような場合は、ココにディレクトリパスを指定しておかないと対象のファイルが認識できなくなってしまう。

逆に「開始 (オプション)」は空欄にしたまま、.ahk 内の Include 指定でフルパス指定する方法もある。

; 作業フォルダを自身の位置に固定する
SetWorkingDir %A_ScriptDir%

; この AHK ファイルと同じ階層にある別の AHK ファイルを Include する
#Include %A_ScriptDir%\my-another-ahk-file.ahk

こんな風に SetWorkingDir 指定を入れておけば良い。

タスクスケジューラ設定 4

↑ 「条件」タブは、ノート PC でバッテリー駆動時はどうする、みたいなオプションなので、どんな場合でも必ずこのタスクが実行できるように調整する。

タスクスケジューラ設定 5

↑ 「設定」タブでは、「タスクを停止するまでの時間」にチェックを入れないことが重要。タスクを開始させたら、勝手に終了させず、実行させっぱなしにさせておかないと、AHK ファイルが閉じられるような挙動になってしまう。

以上。2026年にしてようやくタスクスケジューラの動きや使い方が分かってきた。