AutoHotkey
Macro Deck に同梱AutoHotkey v2 のスクリプトを Macro Deck で管理し、ボタンから実行・停止して、変数の読み取りや設定に使えます。
スクリプトの一覧と、エディターで開いたスクリプトが表示された AutoHotkey 連携のスクリプトタブ
- Macro Deck で AutoHotkey v2 スクリプトを作成、チェック、テスト
- ボタンからスクリプト、.ahk ファイル、インラインコードを実行
- 常駐するスクリプトの起動、停止、切り替え
- パラメーターで値を安全に受け渡し
- スクリプトから変数の読み取りと設定、通知の表示
AutoHotkey 連携を使うと、ボタンやオートメーションから AutoHotkey v2 のスクリプトを実行できます。バックグラウンドのウィンドウへのキー送信、ウィンドウの整列、アプリ専用のホットキーなど、AutoHotkey でできることなら何でも行えます。Windows 専用で、オンにするまではオフのままです。Macro Deck には AutoHotkey は含まれていません。インストール済みの AutoHotkey v2、または選択したポータブル版を使います。AutoHotkey v1 には対応していません。
できること
- 連携の スクリプト タブでスクリプトを管理し、構文ハイライト付きで編集し、構文をチェック を実行して、その場で実行できます。前回の実行 には、直近の実行の状況、結果、エラーとその行、スクリプトの出力が表示されます。
- ライブラリのスクリプトは AutoHotkey スクリプトを実行 で、保存場所にある
.ahkファイルは AutoHotkey ファイルを実行 で、アクション内に書いたコードは インライン AutoHotkey コードを実行 で実行します。 - ホットキーやタイマーを使うスクリプトを Macro Deck と一緒に起動し、AutoHotkey スクリプトを切り替え で起動と停止を切り替えます。ボタンには 実行中 または 停止中 と表示されます。
- 値は パラメーター としてスクリプトに渡します。Macro Deck が値をスクリプトのテキストに埋め込むことはないため、値によってコードが壊れたり変わったりすることはありません。スクリプトでは
MacroDeck.Params["name"]で読み取ります。 - Macro Deck のヘルパーを使って、スクリプトから Macro Deck に情報を返せます。
MacroDeck.GetVarとMacroDeck.SetVarは変数を読み取り・設定し、MacroDeck.Notifyは通知を表示し、MacroDeck.SetResultはアクションに結果を報告します。 - スクリプトの起動、終了、失敗をきっかけにオートメーションを開始できます。
設定例:
- ゲーム用ホットキーのスクリプトを切り替える AutoHotkey スクリプトを切り替え ボタン。実行中 と 停止中 でそれぞれ見た目を変えます。
- パラメーター
volumeを{{ vars.volume }}に設定してスクリプトを実行するボタン。スクリプトはSoundSetVolume MacroDeck.Params["volume"]を呼び出します。 - AutoHotkey スクリプトが失敗 をきっかけに、
{{ event.reason }}をボタンに表示するオートメーション。
スクリプトの実行の仕組み
Macro Deck が実行するスクリプトでは、AutoHotkey のエラーダイアログは表示されません。読み込みエラーや実行時エラーは 前回の実行 に表示され、完了を待つアクションは失敗します。スクリプトを停止するときは、まず終了を要求するので OnExit ルーチンが実行され、停止の猶予時間(秒) を過ぎると強制終了されます。停止と切り替えのアクションは、Macro Deck が起動したスクリプトだけに作用します。Macro Deck の終了時や連携をオフにしたときは、Macro Deck が起動したすべての AutoHotkey スクリプトが停止します。
Macro Deck 2 から移行すると、jbcarreon123 による AutoHotkey プラグインのうち AutoHotkey v2 スクリプトを実行するボタンは、これらのアクションに移行されます。
必要なもの
- Windows。
- AutoHotkey v2 (インストール版またはポータブル版)。Macro Deck には含まれていません。
セットアップ
ステップ 1: AutoHotkey v2 をインストールする
autohotkey.com から AutoHotkey v2 をダウンロードしてインストールします。Macro Deck は、インストーラーがインストールした場所で AutoHotkey を見つけます。
ステップ 2: 連携をオンにする
Macro Deck のサイドバーで 連携 をクリックし、AutoHotkey をクリックして、右上のスイッチをオンにします。Macro Deck が AutoHotkey v2 を見つけられない場合は、ページに AutoHotkey が見つかりません と表示されます。AutoHotkey をインストールしてから もう一度確認 をクリックします。
ステップ 3: AutoHotkey の設定を確認する
概要 タブの 設定 セクションで セットアップ をクリックします。AutoHotkey の設定 には、使用中の AutoHotkey とそのバージョンが表示されます。ポータブル版の AutoHotkey を使う場合は、AutoHotkey 実行ファイル を 実行ファイルを選択 にし、実行ファイル でその
AutoHotkey64.exeを選びます。続行 をクリックします。ステップ 4: スクリプトを書く
スクリプト タブを開き、一覧のタイトルの横にある + をクリックします。名前を入力して スクリプトを作成 をクリックし、エディターでスクリプトを書きます。たとえば
MsgBox "Hello from Macro Deck"です。保存 をクリックし、実行 をクリックして試します。ステップ 5: ボタンにアクションを追加する
デッキ ページで、使いたいボタンをクリックします。デッキのロックが解除されている必要があります。右上のボタンに ロック と表示されていれば解除されています。エディターが開き、短押し が選択されています。+ アクションを追加 をクリックし、アクションを追加 ダイアログの左側で AutoHotkey を選択して、AutoHotkey スクリプトを実行 を選びます。AutoHotkey スクリプト でスクリプトを選び、保存 をクリックします。
ステップ 6: ボタンを押す
デッキでボタンを押します。スクリプトが実行され、スクリプト タブの 前回の実行 に結果が表示されます。
アクション7
ボタンに設定したり、フローから実行したりできます。
- AutoHotkey スクリプトを実行
- スクリプト タブのスクリプトをパラメーター付きで実行します。完了まで待つこともできます。
- AutoHotkey ファイルを実行
- コンピューター上の保存場所にある
.ahkファイルを、A_Argsのコマンドライン引数とパラメーター付きで実行します。 - インライン AutoHotkey コードを実行
- アクション内に書いた AutoHotkey v2 コードを実行します。
- AutoHotkey スクリプトを停止
- Macro Deck が起動したスクリプトまたはファイルを停止します。すべてのインスタンスか、最新のものだけを停止できます。
- AutoHotkey スクリプトを再起動
- スクリプトまたはファイルを停止し、新しいパラメーターで再び起動します。実行中でなければ起動します。
- AutoHotkey スクリプトを切り替え
- Macro Deck がスクリプトまたはファイルを実行していなければ起動し、実行していれば停止します。ボタンに 実行中 または 停止中 と表示されます。
- Window Spy を開く
- AutoHotkey の Window Spy を開き、ウィンドウのタイトル、クラス、コントロールを調べます。
トリガー3
ボタンやフローがこれらのイベントに反応できます。
- AutoHotkey スクリプトが起動
- Macro Deck が起動したスクリプトが読み込まれ、実行されています。
- AutoHotkey スクリプトが終了
- そのようなスクリプトが終了しました。終了コードと実行時間が含まれます。
- AutoHotkey スクリプトが失敗
- スクリプトを起動または読み込めなかったか、エラーを報告したか、時間内に完了しませんでした。
変数4
これらの値をボタンやウィジェットに表示したり、条件に使ったりできます。
autohotkey_installed,autohotkey_version- Macro Deck が動作する AutoHotkey v2 を見つけたかどうかと、そのバージョンです。
autohotkey_running_scripts- Macro Deck が現在実行している AutoHotkey スクリプトの数です。
autohotkey_last_script,autohotkey_last_exit_code,autohotkey_last_result,autohotkey_last_error- 最後に終了または失敗したスクリプト、その終了コード、
MacroDeck.SetResultで報告した結果、失敗した場合はその理由です。 autohotkey_script_<name>_running- ライブラリのスクリプトが実行中かどうかです。スクリプトごとに 1 つあります。スクリプトの名前を変更しても、この名前は変わりません。
よくある質問
AutoHotkey v1 のスクリプトでも使えますか?
いいえ。Macro Deck が対応しているのは AutoHotkey v2 だけで、AutoHotkey v1 向けに書かれたコードは v2 では読み込めません。スクリプト タブの 構文をチェック で、最初のエラーの行を確認できます。
Macro Deck の値をスクリプトに渡すにはどうすればよいですか?
アクションでパラメーターとして追加します。たとえば volume に値 {{ vars.volume }} を設定し、スクリプトでは MacroDeck.Params["volume"] で読み取ります。値は常に、入力したとおりのテキストとして届きます。スクリプトは MacroDeck.GetVar("name") でいつでも変数を読み取ることもできます。
スクリプトからゲームやツールにキーが送られないのはなぜですか?
Macro Deck はスクリプトを管理者権限なしで実行します。Windows では、そのようなスクリプトから、管理者として実行しているプログラムのウィンドウにキーやクリックを送ることはできません。
Macro Deck を閉じるとスクリプトはどうなりますか?
Macro Deck は、終了時や連携がオフにされたときに、自分が起動したすべての AutoHotkey スクリプトを停止します。Macro Deck の実行中は常にスクリプトを動かしておきたい場合は、スクリプトの 設定 で Macro Deck の起動時に起動 をオンにします。スクリプトが開いたプログラムは開いたままになります。
手持ちの .ahk ファイルを引き続き使えますか?
はい。AutoHotkey ファイルを実行 はファイルを保存場所で実行するので、A_ScriptDir はそのファイルのフォルダーになります。スクリプト タブでファイルをライブラリにインポートすることもできます。
お使いのコンピューターのその他の連携
システム
Macro Deck に同梱デッキからコンピューターを操作します。アプリ、音量、コマンド、通知、スリープ、シャットダウンに対応。
キーボード
Macro Deck に同梱ボタンから、コンピューターでショートカットを押したり、テキストを入力したり、キー操作シーケンスを実行したりできます。
マウス
Macro Deck に同梱ボタンから、コンピューターでクリック、ポインターの移動、ドラッグ、スクロールができます。
ADB / Android Debug Bridge
Macro Deck に同梱USB または Wi-Fi で Android のスマートフォンやタブレットを操作します。画面のスリープ解除、アプリの起動、タップ、文字入力、スクリーンショットの撮影ができます。
Steam
Macro Deck に同梱Steam のゲームを起動、終了し、プレイ中のゲーム、フレンド、ライブラリをデッキに表示します。