跳到主要内容

前置和后置操作

备注

高级模式。 应用程序组 页面上的 前置和后置 选项卡,以及 脚本 页面上的 前置和后置超时,只在高级模式下显示。您设置的前置和后置脚本在简单模式下仍会运行。

前置脚本在应用程序组运行的每个操作之前运行,后置脚本在操作完成后运行。可将它们用于组中每个操作共有的工作:先将窗口置于前台、保存剪贴板并在之后恢复、记录日志。

它们会包裹组中的每一次匹配:手势、热键和文本扩展都一样。它们不包裹全局事件。

设置​

Input.Observer简单高级
自动化
操作
文本扩展
代码片段
录制器
沙盒
应用程序组
忽略组
手势
引擎
全局事件
排除区域
脚本
插件
设置
常规
外观
配置方案
控制台
安全
帮助
关于
应用程序组
浏览器
全局保留
应用程序组
前置和后置
包裹此组中每个操作的脚本:“前置”脚本最先运行,“后置”脚本最后运行。
每个操作之前
继承自全局自定义无
编写方式
步骤脚本AutoHotkey
每个操作之后
继承自全局自定义无
  1. 在 应用程序组 上选择该组,并找到 前置和后置 卡片。
  2. 在 每个操作之前 ① 下,选择 自定义。
  3. 在 编写方式 ② 下,选择编写脚本的方式:步骤、脚本,或(当 AutoHotkey 已打开时)AutoHotkey。然后像编写操作一样编写它。请参阅步骤和脚本语言。
  4. 在 每个操作之后 ③ 下执行相同的操作,或者保留 继承自全局。
  5. 应用更改。

两者各有自己的选项:

选项运行什么
继承自全局(默认)全局组的前置(或后置)脚本(如果有)。如果没有,则什么都不运行。
自定义此组自己的脚本。内容为空的自定义脚本什么都不运行,与 无 相同。
无什么都不运行,即使全局组有脚本也是如此。

全局组的脚本 在全局组的同一张卡片中设置,该卡片只提供 自定义 和 无:全局组之上没有可以继承的内容。它们是每个 继承自全局 的组所运行的脚本,也是在全局组自己的操作前后运行的脚本。

运行哪个组的脚本​

使用的是 运行了操作的那个组 的脚本,而不是窗口所属组的脚本:

运行的操作来自使用的前置和后置
窗口自己的应用程序组该组的选择:它自己的、全局组的(继承),或者无
全局组,因为该窗口没有组全局组的
全局组,由窗口所属组回退而来全局组的,绝不是窗口所属组的

所有内容的顺序​

当手势匹配时,以下内容严格地一个接一个运行:

  1. 激活手势下方的窗口,如果该设置已打开(仅限手势)。请参阅绘制手势。
  2. 释放按住的修饰键,如果触发器的 按住的修饰键 为 释放后恢复。请参阅修饰键和时机。
  3. 前置,直到它完成或被超时结束。
  4. 操作,需要多久就运行多久。
  5. 后置,直到它完成或被超时结束。
  6. 重新按下按住的修饰键,如果第 2 步释放了它们。

细节:

  • 前置脚本无法取消操作。 前置脚本结束后操作就会运行,即使前置脚本因错误失败或被超时停止也是如此。
  • 操作永远不会被超时提前截断。 后置脚本只在操作完成后才开始。
  • 停止所有操作热键 会停止正在运行的部分,并跳过其余部分,包括后置脚本。
  • 相同的触发器信息。 前置和后置脚本看到的手势、窗口和触发器详细信息与操作相同(脚本参考中的 Context 内置函数)。
  • 每次匹配运行各自的序列。 快速连续绘制的两个手势会同时运行各自的序列,每个序列按自己的顺序进行。
  • 绘制按钮已释放全局事件 不属于该序列:它在您松开时开始,与序列并行。
  • 文本扩展: 键入的文本在前置脚本运行之前被删除,结束它的键(例如空格)会在操作之后、后置脚本运行之前键入。请参阅文本扩展。

当某个组最终既没有前置脚本也没有后置脚本时,操作会单独运行。

前置和后置超时​

脚本 页面 限制和超时 卡片上的 前置和后置超时 限制每个前置或后置脚本可以运行的时长:默认为 3,000 毫秒,范围从 0 到 60,000。超过该时长仍在运行的脚本会被停止,然后开始下一步,不会弹出消息框;诊断控制台会显示一行相关信息(请参阅诊断控制台)。设为 0 时,每个脚本大约有 20 毫秒。

此限制永远不适用于操作本身。