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 游戏,并在面板上显示正在玩的游戏、好友和游戏库。