全局事件
全局事件会在某件事发生时运行脚本,无论哪个程序在前台。全局事件共有 13 个,而且始终是这 13 个:您可以设置每一个、打开或关闭它,但永远不能添加或删除。与操作不同,全局事件不属于任何应用程序组。
高级模式。 全局事件 页面位于导航的 引擎 部分,配置窗口只在高级模式下显示该部分。
设置事件
| 事件 | 脚本 | 触发时机 |
|---|---|---|
| 中键 | 步骤,1 步 | 按下和释放 |
| 右键 | 未设置 | 仅按下 |
| 滚轮 — 垂直 | 未设置 | 每个刻度 |
- 找到该事件所在的行。打开其开关 ① 以启用它。
- 单击 设置 →(如果已有脚本,则为 编辑脚本 →)②。该行会就地展开;一次只能展开一行。
- 对于鼠标按键或滚轮,选择是否 拦截输入 ③(拦截输入)。
- 在 运行方式 ④ 下,选择 步骤 或 脚本(当常规设置中打开了 AutoHotkey 时还可选择 AutoHotkey),并编写它要执行的内容(操作)。
- 单击 完成,然后保存。
该行的中间一列会汇总脚本,例如 步骤,3 步 或 未设置。已打开但未设置任何内容的事件会将该摘要显示为警告:它不会运行任何内容。导航标记会统计已启用的事件数。
13 个事件
| 事件 | 卡片 | 触发时机 |
|---|---|---|
| 左键、中键、右键、侧键 1、侧键 2 | 鼠标和滚轮 | 按键按下时,以及松开时再触发一次(按下和释放)。对于绘制按钮,只在按下时触发(仅按下)。 |
| 滚轮 — 垂直 | 鼠标和滚轮 | 滚轮每转动一个刻度(每个刻度)。 |
| 滚轮 — 水平 | 鼠标和滚轮 | 倾斜滚轮或横向滚动每一个刻度(每个刻度)。 |
| 绘制按钮已释放 | 手势结果 | 开始手势的绘制按钮被松开时(每次捕获后)。 |
| 无匹配 | 手势结果 | 绘制的手势没有运行任何操作时(手势结束后)。 |
| 配置已加载 | 系统和生命周期 | 引擎启动时,以及每次保存或 重新加载配置 后再次触发(启动、保存和重新加载时)。 |
| 引擎正在关闭 | 系统和生命周期 | 引擎退出时(超时时提示)。 |
| 添加或移除了硬件 | 系统和生命周期 | 插入或移除设备时(仅限实际接入)。 |
| 前台窗口已更改 | 系统和生命周期 | 每次有另一个窗口切换到前台时(禁用时跳过)。 |
脚本可以使用 Context 内置函数了解是什么触发了它:例如鼠标按键是按下还是松开,以及涉及哪个按键和窗口(内置函数)。
鼠标按键
无论指针在何处,鼠标按键事件都会在该按键每次按下时触发:在被忽略的程序上、在排除区域内,以及在手势期间(手势期间按下的按键同时也算作手势修饰键)。对于 Input.Observer 自己的脚本发送的单击,它永远不会触发。
对于同时也是绘制按钮的按键(常规,绘制按钮),该事件只在按键按下时触发;该行会显示 仅按下,并注明此按键用于绘制手势。按下仍会照常开始手势。要响应松开,请使用 绘制按钮已释放。
当 Windows 交换了鼠标按键时,按键名称以 Windows 为准:右键 是打开上下文菜单的那个按键。
滚轮
滚轮事件会在每个刻度触发,无论指针下方是什么程序,在手势期间也会触发。在覆盖该滚轮的排除区域内不会触发。
同一滚轮事件的脚本按顺序一次运行一个。如果刻度到达的速度快于脚本完成的速度,最多 8 个会排队等候;超出的刻度会被丢弃。
刻度之间的最小间隔(高级模式,位于展开的行中;默认为 0)设置两个运行脚本的刻度之间的最短时间。0 表示每个刻度都运行。设置了间隔后,在上一个被接受的刻度之后过早到达的刻度会被丢弃,而不会排队。垂直滚轮和水平滚轮各有自己的间隔。同样的两个值也以 滚轮节流 的形式出现在 常规 页面上;更改其中一个会同时更改另一个。
拦截输入
五个鼠标按键和两个滚轮可以 拦截输入:单击或滚动永远不会传到任何程序,应该发生的任何替代行为都由脚本负责。被拦截的按下也会拦截其松开。
- 绘制按钮无法被拦截,因为其按下必须始终传给手势捕获。该开关不可用,并会说明原因。即使配置文件将其打开,引擎也会在加载时将其关闭,并且该行会显示警告,直到您也在这里将其关闭。
- 允许在没有脚本的情况下拦截,但该行会警告您:单击或滚动会直接消失。
- 拦截设置了最小间隔的滚轮:间隔内的刻度会被拦截 并且 丢弃。它既不会滚动,也不会运行脚本。该行也会对此发出警告。
手势结果
绘制按钮已释放 在其按下开始了手势的绘制按钮被松开时触发,无论发生了什么:手势运行了操作、没有匹配任何内容、结果只是普通单击并被传递,或者是为训练而绘制的。如果按下从未开始手势(被忽略的程序、排除区域、按住了忽略的修饰键),或者手势在松开之前就已结束(取消超时),则不会触发。
无匹配 在您绘制了手势(至少移动了最小手势移动距离),但在窗口的应用程序组和全局组中都没有操作与之匹配时触发。对于普通单击,或在训练手势期间,它不会触发。
系统和生命周期事件
- 配置已加载 在引擎启动时运行。如果超过 启动和关闭等待时间(脚本 页面;默认为 10 秒)后它仍在运行,系统会询问您是否继续等待。每次从配置窗口保存以及每次 重新加载配置 后,在停止仍在运行的脚本之后,它都会再次运行;这次运行没有时间限制,也不会提示,并且在引擎被禁用期间会被跳过。
- 引擎正在关闭 在引擎退出时运行,重新加载时绝不运行。如果超过 启动和关闭等待时间 后它仍在运行,系统会询问您是继续等待还是让引擎退出。它绝不会在未询问的情况下被中断。
- 添加或移除了硬件 在设备实际接入或移除时触发,而不是在 Windows 期间发送的例行设备通知时触发。引擎被禁用期间会被跳过。
- 前台窗口已更改 在每次有不同的窗口切换到前台时触发。引擎被禁用期间会被跳过。
显示窗口(例如消息框)的 前台窗口已更改 脚本会将该窗口置于前台,从而再次触发该事件,如此反复。如果发生这种情况,请按停止所有操作热键(常规 页面):它会停止所有脚本,并关闭输入处理和此事件,直到您从托盘菜单中选择 重新加载配置。
全局事件不触发的情况
- 引擎从托盘被禁用期间,或因设置了 获得焦点时暂停所有功能 的窗口获得焦点而暂停期间(忽略组)。配置已加载 在启动时仍会运行。
- 在安全模式下,此时不会运行任何已配置的脚本。
- 对于 Input.Observer 自己的脚本发送的输入。
忽略组、应用程序组和配置方案不影响全局事件。