应用程序组
应用程序组是一组由规则描述、拥有自己操作的窗口。“浏览器”组中的操作只在浏览器窗口上运行;保留的 全局 组中的操作在其他所有地方运行,并且在任何回退到全局的组中运行。
每个窗口 最多 属于一个应用程序组:列表中第一个规则与之匹配的组。确切的规则见作用范围与回退规则。
页面
组卡片下方有一排选项卡,用于划分其设置。简单模式下有两个:
- 常规:在该组的窗口中会发生什么(请参阅这些窗口中会发生什么)。
- 窗口:哪些窗口算作该组的规则(请参阅规则)。全局组没有“窗口”选项卡:它适用于不被其他任何组拥有的所有窗口。
高级模式还会增加四个选项卡(请参阅高级设置)。您选择的选项卡在选择其他组时仍保持选中,因此可以逐组比较相同的设置。没有该选项卡的组会显示 常规。
窗口 选项卡:
| 检查对象 | 比较方式 | 值 | 区分大小写 | 是否匹配? |
|---|---|---|---|---|
| 程序名称 | 完全等于 | chrome.exe | ☐ | ✓ 3 个已打开 |
| 程序名称 | 完全等于 | msedge.exe | ☐ | 无已打开 |
为某个程序创建组:
- 选择列表底部的 + 新建。会出现一个名为“新建应用程序组”且没有规则的组。
- 为它指定 名称。
- 在 窗口 选项卡上,选择 + 规则 并填写该行 ⑤:要 检查对象 什么、如何 比较方式、值,以及是否 区分大小写。或者将该行的放大镜拖到程序的窗口上(请参阅规则)。
- 查看 是否匹配? 列:它会统计该规则匹配的已打开窗口数。
- 在 操作 页面上,在其组列表中选择此组,然后向该组添加操作。请参阅操作编辑器。
- 应用更改。
快速入门演示了相同的任务。
规则
规则检查窗口的 顶层窗口(整个程序窗口,而不是其中的按钮或文本框)的某一项属性:
| 检查对象 | 读取的内容 | 值示例 |
|---|---|---|
| 程序名称 | 程序的文件名 | chrome.exe |
| 程序路径 | 程序的完整路径 | C:\Program Files\Mozilla Firefox\firefox.exe |
| 窗口标题 | 窗口标题栏中的文本 | Visual Studio |
| 窗口类 | 窗口的类名,是程序为其窗口指定的固定名称 | Notepad |
| 比较方式 | 文本满足以下条件时匹配… |
|---|---|
| 完全等于 | 与值完全相同 |
| 包含 | 在任意位置包含值 |
| 开头为 | 以值开头 |
| 结尾为 | 以值结尾 |
| 匹配通配符 | 整体与值匹配,其中 * 代表任意一串字符(包括空),? 代表恰好一个字符 |
| 匹配模式 | 包含与正则表达式值匹配的部分(使用 ^ 和 $ 来匹配整个文本) |
- 区分大小写 默认关闭,决定是否区分大小写。关闭时不区分:对于每种比较方式,以及在每种语言中都同样地,
notepad.exe也会匹配Notepad.exe。打开时,规则的值会按精确的大小写进行比较,匹配模式 也不例外。 - 模式 使用 ECMAScript 正则表达式规则。不支持后行断言(
(?<=…))、命名组((?<name>…))、(?i)之类的内联标志以及\p{…}:这样的模式会在 是否匹配? 中显示 模式无效,并且永远不会匹配。脚本函数使用另一种更大的模式方言,因此在脚本中可用的模式在这里不一定可用。 - 应用商店应用。 程序名称 或 程序路径 规则既匹配应用自己的程序(例如
CalculatorApp.exe),也匹配承载其窗口的程序ApplicationFrameHost.exe。 - 没有值的规则 会在保存时被删除。
- 没有规则的组 不匹配任何窗口。
拖动以识别。 按住某一行的放大镜,将指针移到一个窗口上,然后松开。执行此操作时配置窗口会让开,该行的值会根据该行的 检查对象 选项从该窗口中填入。按 Esc 可取消。
是否匹配? 针对每条规则单独显示它匹配的已打开窗口数:“✓ 3 个已打开”或“无已打开”。它会忽略该组的其他规则以及排在它上面的组。
多条规则
当一个组有两条或更多规则时,在 窗口属于此组的条件 下选择 ④ 它们的组合方式:
- 所有规则均匹配:同一窗口必须满足每条规则(默认)。
- 任一规则匹配:只要有一条规则匹配即可。
此选项在简单模式下也会显示。高级模式会在其下方增加一条说明,解释这两个选项。
顺序
当一个窗口匹配多个组时,列表中位置较高的组拥有它。对于该窗口,永远不会参考其他组,即使拥有它的组没有针对您所做操作的操作也是如此;这时只有全局组可以接管(请参阅回退到全局)。
- 上移 和 下移 ② 会将组移过相邻的应用程序组。
- 忽略组总是最先检查。 任何已启用的忽略组所匹配的窗口永远不会得到应用程序组,无论这些组位于何处。请参阅忽略组。
- 全局组总是在最后,并且没有“上移”或“下移”:它不是通过规则匹配的;它是没有任何组拥有的窗口所得到的组。
这些窗口中会发生什么
这些开关位于 常规 选项卡上;已启用 位于选项卡上方的组卡片上。
| 设置 | 打开时 | 关闭时 |
|---|---|---|
| 已启用 | 该组正在使用。 | 该组会被完全跳过,就像它不存在一样:其规则不匹配任何内容,其操作永远不会运行,列表中的下一个组可以拥有该窗口。 |
| 在此处启用手势 | 这些窗口上的手势使用此组。 | 该组仍拥有其窗口,但没有任何手势使用其操作;如果该组回退到全局,则改用全局的操作,否则按下绘制按钮会直接通过。 |
| 在此处启用热键 | 当这些窗口之一获得焦点时按下的热键使用此组。 | 与手势相同:如果该组会回退,则使用全局的热键,否则没有。 |
| 回退到全局 ③ | 当此组没有针对某个手势、热键或键入文本的内容,或者在活动配置方案中不适用时,会尝试全局的操作。 | 在这些窗口中永远不使用全局的操作。 |
回退到全局 在 常规 页面上也有一个同时作用于所有组的开关;两者都必须打开。请参阅作用范围与回退规则。
文本扩展没有按组设置的开关:它遵循组的规则、配置方案和回退,以及 文本扩展 页面上的总开关。请参阅文本扩展。
高级模式。 获得焦点时暂停所有功能 会在此组中的某个窗口(例如游戏)获得焦点时关闭整个 Input.Observer,并在焦点移到别处时重新打开。从托盘手动关闭 启用 总是优先。请参阅托盘图标。
全局组
全局 组是保留组。它没有规则:它适用于不被其他任何组拥有的所有窗口,并且是各组的回退目标。
- 它始终位于最后一行,标记为 保留,并且无法删除、创建副本或转换为忽略组。
- 其 已启用 开关可以关闭全局组:这时没有任何组拥有的窗口不会得到任何操作,也没有任何组可以回退。托盘菜单的 全局操作 项是同一个开关。
- 在此处启用手势 和 在此处启用热键 既适用于作为窗口自身所属组的全局组,也适用于作为其他组回退目标的全局组。
- 它没有自己的 回退到全局 或 获得焦点时暂停所有功能。
高级设置
高级模式。 这些选项卡出现在 窗口 之后:
- 手势区域:将窗口划分为网格,使一个手势在不同位置执行不同的事情。请参阅区域。
- 前置和后置:在组中每个操作之前或之后运行的脚本。请参阅前置和后置操作。
- 配置方案和超时,包含两张卡片:
- 排除区域:除了适用于所有窗口的区域之外,仅适用于此组窗口的区域。请参阅排除区域。
简单模式会在普通组上隐藏六项设置:手势区域、前置和后置、仅限这些配置方案、取消超时、获得焦点时暂停所有功能 和 排除区域。在全局组上会隐藏其中的前四项。简单模式绝不会更改它们的值:它们在隐藏时仍然有效。页面底部的横幅会统计它们的数量、列出它们的名称,并在其中某项的值不是默认值时加以说明。横幅上的 显示高级设置 会切换到高级模式。
页面报告的问题
组卡片下方、选项卡上方的横幅会指出所选组的问题。同类问题共用一个横幅:标题只出现一次,前面有计数,每个问题一行。超过四行的横幅会显示前三行;全部显示 会列出其余内容,收起 会再次将其折叠。操作、忽略组、文本扩展 和 排除区域 页面上的问题横幅也是如此。
| 横幅 | 含义 | 处理方法 |
|---|---|---|
| 此组中有两个手势无法区分 | 两个操作都有一个同一笔划就能满足的触发器。先声明的那个总是胜出;另一个永远不会因该手势而运行。 | 更改其中一个触发器(另一个手势、修饰键、按键或区域),或在 操作 页面上重新排序操作。 |
| 此处的笔画可能会运行错误的操作 | 在这些窗口上绘制的某个形状与作用范围内的另一个形状得分最接近,并会运行那个形状的操作。请参阅笔划如何匹配。 | 添加空操作,或提高匹配阈值。当横幅列出多个笔划时,每一行都有自己的 添加空操作 链接,为全部添加空操作 会为列出的每个笔划各添加一个。 |
| 此组不匹配任何窗口 | 它没有规则。 | 添加一条规则。 |
| 有规则没有值 | 它会在保存时被删除。 | 填写值或删除该行。 |
| 另一个组已有这些规则 | 一个先检查的组具有相同的规则,因此没有任何窗口能到达此组。 | 更改规则或顺序。 |
| 在其配置方案之外,其窗口不会得到任何操作 | 该组限定于某些配置方案,并且不回退到全局。 | 打开 回退到全局,或接受这种情况。 |
| 某个手势永远无法匹配 | 区域已打开,而某个手势触发器没有区域单元格。 | 为该触发器选择单元格。请参阅区域。 |
| 某个手势指向网格之外 | 某个触发器指定了当前网格中不存在的单元格。 | 为该触发器重新选择单元格。 |
已禁用的组,或关闭了 在此处启用手势 的组,不会报告手势问题。
添加、复制和删除组
- + 新建 会在应用程序组的末尾添加一个空组。
- + 新建 旁边的复制按钮会复制所选组的全部内容,并将副本放在其正下方。在更改副本的规则之前,原组会拥有副本本应拥有的所有窗口,因此副本会显示 另一个组已有这些规则。
- 某一行的删除按钮会在确认后删除组,确认中会说明有多少个操作会随之删除。
- 转换为忽略组… 会将该组转换为忽略组。确认中会列出将被删除的内容:其操作、区域、前置和后置脚本、取消超时以及排除区域。之后该组会出现在 忽略组 页面上。请参阅忽略组。