前置和后置操作
备注
高级模式。 应用程序组 页面上的 前置和后置 选项卡,以及 脚本 页面上的 前置和后置超时,只在高级模式下显示。您设置的前置和后置脚本在简单模式下仍会运行。
前置脚本在应用程序组运行的每个操作之前运行,后置脚本在操作完成后运行。可将它们用于组中每个操作共有的工作:先将窗口置于前台、保存剪贴板并在之后恢复、记录日志。
它们会包裹组中的每一次匹配:手势、热键和文本扩展都一样。它们不包裹全局事件。
设置
自动化
操作
文本扩展
代码片段
录制器
沙盒
应用程序组
忽略组
手势
引擎
全局事件
排除区域
脚本
插件
设置
常规
外观
配置方案
控制台
安全
帮助
关于
应用程序组
浏览器
全局保留
应用程序组
前置和后置
包裹此组中每个操作的脚本:“前置”脚本最先运行,“后置”脚本最后运行。
每个操作之前
1继承自全局自定义无
编写方式
2步骤脚本AutoHotkey
每个操作之后
3继承自全局自定义无
- 在 应用程序组 上选择该组,并找到 前置和后置 卡片。
- 在 每个操作之前 ① 下,选择 自定义。
- 在 编写方式 ② 下,选择编写脚本的方式:步骤、脚本,或(当 AutoHotkey 已打开时)AutoHotkey。然后像编写操作一样编写它。请参阅步骤和脚本语言。
- 在 每个操作之后 ③ 下执行相同的操作,或者保留 继承自全局。
- 应用更改。
两者各有自己的选项:
| 选项 | 运行什么 |
|---|---|
| 继承自全局(默认) | 全局组的前置(或后置)脚本(如果有)。如果没有,则什么都不运行。 |
| 自定义 | 此组自己的脚本。内容为空的自定义脚本什么都不运行,与 无 相同。 |
| 无 | 什么都不运行,即使全局组有脚本也是如此。 |
全局组的脚本 在全局组的同一张卡片中设置,该卡片只提供 自定义 和 无:全局组之上没有可以继承的内容。它们是每个 继承自全局 的组所运行的脚本,也是在全局组自己的操作前后运行的脚本。
运行哪个组的脚本
使用的是 运行了操作的那个组 的脚本,而不是窗口所属组的脚本:
| 运行的操作来自 | 使用的前置和后置 |
|---|---|
| 窗口自己的应用程序组 | 该组的选择:它自己的、全局组的(继承),或者无 |
| 全局组,因为该窗口没有组 | 全局组的 |
| 全局组,由窗口所属组回退而来 | 全局组的,绝不是窗口所属组的 |
所有内容的顺序
当手势匹配时,以下内容严格地一个接一个运行:
- 激活手势下方的窗口,如果该设置已打开(仅限手势)。请参阅绘制手势。
- 释放按住的修饰键,如果触发器的 按住的修饰键 为 释放后恢复。请参阅修饰键和时机。
- 前置,直到它完成或被超时结束。
- 操作,需要多久就运行多久。
- 后置,直到它完成或被超时结束。
- 重新按下按住的修饰键,如果第 2 步释放了它们。
细节:
- 前置脚本无法取消操作。 前置脚本结束后操作就会运行,即使前置脚本因错误失败或被超时停止也是如此。
- 操作永远不会被超时提前截断。 后置脚本只在操作完成后才开始。
- 停止所有操作热键 会停止正在运行的部分,并跳过其余部分,包括后置脚本。
- 相同的触发器信息。 前置和后置脚本看到的手势、窗口和触发器详细信息与操作相同(脚本参考中的
Context内置函数)。 - 每次匹配运行各自的序列。 快速连续绘制的两个手势会同时运行各自的序列,每个序列按自己的顺序进行。
- 绘制按钮已释放全局事件 不属于该序列:它在您松开时开始,与序列并行。
- 文本扩展: 键入的文本在前置脚本运行之前被删除,结束它的键(例如空格)会在操作之后、后置脚本运行之前键入。请参阅文本扩展。
当某个组最终既没有前置脚本也没有后置脚本时,操作会单独运行。
前置和后置超时
脚本 页面 限制和超时 卡片上的 前置和后置超时 限制每个前置或后置脚本可以运行的时长:默认为 3,000 毫秒,范围从 0 到 60,000。超过该时长仍在运行的脚本会被停止,然后开始下一步,不会弹出消息框;诊断控制台会显示一行相关信息(请参阅诊断控制台)。设为 0 时,每个脚本大约有 20 毫秒。
此限制永远不适用于操作本身。