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 指令碼 執行指令碼庫中的指令碼,使用 執行 AutoHotkey 檔案 在
.ahk檔案的儲存位置執行該檔案,或使用 執行內嵌 AutoHotkey 程式碼 執行直接寫在動作中的程式碼。 - 讓含有快速鍵或計時器的指令碼隨 Macro Deck 一起啟動,並使用 切換 AutoHotkey 指令碼 啟動和停止它們。按鈕會顯示 執行中 或 未執行。
- 以 參數 將值傳遞給指令碼。Macro Deck 從不將值插入指令碼的文字中,因此值不會破壞或改變您的程式碼。指令碼以
MacroDeck.Params["name"]讀取這些值。 - 讓指令碼透過 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 結束或關閉此整合時,會停止所有由它啟動的 AutoHotkey 指令碼。
從 Macro Deck 2 移轉時,jbcarreon123 的 AutoHotkey 外掛程式中執行 AutoHotkey v2 指令碼的按鈕會轉換為這些動作。
需要準備
- Windows。
- AutoHotkey v2,安裝版或可攜式版本皆可。Macro Deck 不包含它。
開始設定
步驟 1: 安裝 AutoHotkey v2
從 autohotkey.com 下載並安裝 AutoHotkey v2。Macro Deck 會在安裝程式放置它的位置找到它。
步驟 2: 開啟整合
在 Macro Deck 的側邊欄中按一下 整合,按一下 AutoHotkey,然後開啟右上角的開關。如果 Macro Deck 找不到 AutoHotkey v2,頁面會顯示 找不到 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- 指令碼庫中的某個指令碼是否正在執行,每個指令碼各有一個。重新命名指令碼後,此名稱仍維持不變。
常見問題
可以用於 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 遊戲,並在面板上顯示正在玩的遊戲、好友和遊戲庫。