热键
热键是操作上的触发器:一个运行该操作的组合键。没有单独的热键页面。您在 操作 页面上为操作添加热键,与其手势和键入文本并列。一个操作可以有任意类型的多个触发器。
为操作添加热键
- 在 操作 页面上,在 应用程序组 中选择应用程序组,然后选择操作(或新建一个)。
- 在 触发器 卡片中,单击 + 热键 ①。
- 单击 组合键 字段 ②。等待期间它会显示 请按组合键…。
- 按下组合键,例如 Ctrl+Shift+N。字段会显示它。
- 在高级模式下,选择 已注册 ③ 和 按住的修饰键 ④(见下文)。
- 保存。引擎获得保存的配置后,热键即可生效。
触发器卡片的第二行显示 向 Windows 保留 或 被动监视,即两种热键之一(保留还是被动)。
高级模式。 已注册、拦截最后一个键 和 按住的修饰键 只在高级模式下显示。在简单模式下,新热键会向 Windows 保留,并在其操作运行之前释放按住的修饰键。简单模式绝不会更改您在高级模式下设置的值。
选择按键
组合键字段会记录您按下的内容,而不让它生效:在该字段等待期间,Win+E 不会打开文件资源管理器,现有热键也不会运行。
- 组合键由任意数量的修饰键(Ctrl、Shift、Alt、Win)和恰好一个其他按键组成。仅有修饰键不会完成输入;字段会继续等待其他按键。
- 任何其他按键都可以作为最后一个键,包括功能键、数字小键盘以及在脚本按键语法中没有名称的按键。
- 允许不带修饰键的组合键,例如单独的 F9。保留这样的组合键会使所有程序都收不到该键(保留还是被动)。
- 不带修饰键的 Esc 会取消,并保持字段不变。带修饰键的 Esc(例如 Shift+Esc)会被记录。
- 左右修饰键是同一个修饰键:Ctrl+K 热键对任一 Ctrl 键都会运行。
- 只有当配置窗口是活动窗口时,字段才会记录。单击其他位置会停止记录。
保留还是被动
热键要么向 Windows 保留(已注册 打开,默认),要么被动监视(已注册 关闭)。
| 向 Windows 保留 | 被动监视 | |
|---|---|---|
| 前台程序是否会收到这些键? | 在任何程序中都永远不会。 | 会,除非 拦截最后一个键 已打开,且此热键的操作适用于前台窗口。 |
| 如果其他程序已经保留了相同的按键 | 此热键会失败。Input.Observer 会报告这一情况(其他程序占用的按键)。 | 两者都会运行:其他程序的快捷方式和此操作。 |
| 引擎被禁用期间,或因忽略组而暂停期间 | 这些键仍会被所有程序占用,并且不运行任何内容。 | 这些键会正常传给程序,并且不运行任何内容。 |
| 最适合 | 您希望在任何地方都归 Input.Observer 所有的按键。 | 在操作不适用的程序中仍应正常工作的按键,或其他程序已经保留的按键。 |
每次引擎加载配置时,每个不同的组合键都会向 Windows 保留一次。这与哪个窗口在前台、哪个配置方案处于活动状态,或者操作是否适用于前台窗口无关。这是有意为之:保留热键就是选择拥有这些按键,因此其他程序以后无法占用它们,而保持保留状态可以避免每次切换窗口时都释放并重新保留按键。因此,一个操作属于其他配置方案或其他程序的保留热键仍会占用其按键,但不运行任何内容。当使用某个组合键的所有操作都已关闭、其应用程序组已关闭,或其组的 在此处启用热键 已关闭时,该组合键不会被保留。
拦截最后一个键
对于被动监视的热键,拦截最后一个键(默认打开)会阻止组合键的最后一个键传给前台程序:包括其按下、自动重复和松开。修饰键总是会通过。它只在此热键为前台窗口运行操作时适用;在其他任何地方,该键都会通过。保留的热键不显示此选项,因为 Windows 已经扣留了其按键。
由于修饰键会通过,Windows 仍可能单独响应它们。如果被动监视的组合键中包含 Alt 或 Win,前台程序可能会看到一次单独的 Alt 按下并选中其菜单栏,或者 Windows 可能会打开“开始”菜单。Input.Observer 无法完全阻止这种情况。如果发生这种情况,请将该组合键向 Windows 保留,或改选包含 Ctrl 或 Shift 的组合键。
按住的修饰键
热键会在您仍按住其修饰键时运行。否则键入文本的操作会在 Ctrl 或 Alt 仍处于按下状态时键入。按住的修饰键 用于在 释放后恢复(新触发器的默认值)和 保持按下 之间进行选择。完整规则见修饰键和时机。
每次按下运行一次
按住热键只会运行一次其操作。Windows 的按键自动重复不会再次运行它;要再次运行,请松开最后一个键并重新按下。这适用于两种热键。
运行哪个操作
热键没有指针下方的窗口。它使用您按下最后一个键那一刻的 前台窗口(拥有键盘焦点的窗口):
- 如果该窗口属于某个忽略组,则不运行任何内容。保留热键的按键仍不会传给该窗口。
- 如果该窗口属于一个 在此处启用热键 已打开的应用程序组,且该组在活动配置方案中适用,则运行该组中按匹配顺序第一个具有此确切组合键和热键类型的已启用操作。
- 如果该组中没有任何内容运行,热键会回退到全局组的操作,除非该组或 常规 页面上的 回退到全局 已关闭。
- 不属于任何应用程序组的窗口直接使用全局组的操作。
- 如果没有任何匹配,则不运行任何内容。
因此,一个组合键可以在每个应用程序组中运行不同的操作,并在其他所有地方运行一个全局操作。在多个组中使用的保留组合键只会保留一次。作用范围和回退在作用范围与回退中有完整说明。限定于特定配置方案的操作在其他配置方案中会被跳过(配置方案)。
热键不运行的情况
以下情况下不会运行任何热键操作:
- 正在绘制手势时;
- 正在录制宏或正在训练手势时;
- 引擎已从托盘禁用时,或因某个设置了 获得焦点时暂停所有功能 的窗口获得焦点而暂停时(忽略组);
- 在安全模式下,此时根本不会保留任何热键。
常规 页面上的停止所有操作热键是例外:除安全模式外,它在上述所有状态下都有效。
冲突
对于以下每种情况,操作编辑器都会在触发器上显示横幅,并在列表中该操作的行上显示一个圆点:
| 横幅 | 含义 |
|---|---|
| 此处另一个操作使用了这些按键 | 同一应用程序组中的两个操作具有相同的组合键和类型。列表中位置较高的那个运行;另一个永远不会因这些按键而运行。横幅会说明哪一个胜出。 |
| 此组合键被使用了两次 | 同一组合键在一个操作上是保留的,在另一个操作上是被动的。按一次键可能会同时运行两者。请更改其中一个来解决。 |
| 这些按键会停止所有操作 | 该组合键是 常规 页面上的停止所有操作热键。按下它会停止所有操作,而不是运行此操作。 |
| Ctrl+Break 用于停止宏录制 | 保留的 Ctrl+Break 热键会使录制停止键失效;请改为从托盘图标或 录制器 页面停止录制。 |
| 在许多键盘上 Ctrl+Alt 用于输入字符 | 恰好是 Ctrl+Alt 加一个字符键。在带有 AltGr 键的键盘布局上,键入 € 或 @ 等字符会触发它。加上 Shift 可以避免这种情况。 |
| 未设置按键 | 该触发器还没有组合键,永远不会运行。 |
| Windows 或其他程序已在使用这些按键 | 请参阅其他程序占用的按键。 |
同一组合键位于两个不同的应用程序组中不算冲突:由前台窗口决定运行哪一个(运行哪个操作)。
其他程序占用的按键
一个组合键只能由一个程序向 Windows 保留。当引擎无法保留您的某个热键时,每次加载配置时(启动时、保存后或重新加载配置后)它都会显示一条 配置警告 消息,列出它无法保留的每个组合键。这些热键在该会话中不起作用。操作编辑器会将它们标记为 Windows 或其他程序已在使用这些按键。Windows 本身也会保留一些组合键,例如 Win+L。
要解决此问题,请选择其他按键;或关闭占用这些按键的程序,然后从托盘菜单中选择 重新加载配置;或者关闭 已注册,改为被动监视这些按键。
如果您刚刚更改或删除了使用这些按键的操作,请先保存:在此之前,Input.Observer 会保持它自己的保留。