插件
插件是与 Input.Observer 协同工作的独立程序。大多数插件用于绘制:随 Input.Observer 提供的 Styles 插件会绘制动画轨迹样式以及经过装饰的提示和消息。其他插件可以添加供脚本调用的函数,或者运行以其他语言编写的操作。Input.Observer 会自行启动、监视和停止每个插件;您永远不需要手动启动插件。
本页介绍如何管理插件。如何编写插件,请参阅单独的插件开发者文档。
高级模式。 插件 页面位于导航的 引擎 部分,该部分在简单模式下是隐藏的。插件在简单模式下会继续运行,外观 页面在两种模式下都会显示并控制渲染器的样式。
此页面上的更改会立即生效。 它们不属于配置中未保存的更改:不需要 应用,放弃 也无法撤消它们。插件永远不会被导出或导入。
“插件”页面
| 名称 | 路径 | 功能 | 状态 | 操作 |
|---|---|---|---|---|
| Input.Observer.Styles | C:\Program Files\Input.Observer\Input.Observer.Styles.exe | 样式 | 正常 | 禁用 |
| 示例插件 | D:\Tools\SamplePlugin.exe | 脚本函数 | 未使用 | 用作渲染器 |
页面列出每个已注册的插件 ②,列表上方有一个搜索框和一个状态筛选器(所有状态、正常、需要注意、已禁用)。标题行会统计已注册的插件数和正常的插件数。
| 列 | 显示的内容 |
|---|---|
| 名称 | 插件的名称。渲染器所在的行带有 渲染器 标记。复制按钮会准确复制名称,脚本的 PluginSendMessage 调用需要的就是这个名称。 |
| 路径 | 插件的程序文件。末尾的按钮会打开文件资源管理器并选中该文件。 |
| 功能 | 插件提供的内容:手势轨迹、提示、显示消息、样式、脚本命令、脚本函数、脚本引擎、设置、在此设置。未在运行的插件会显示它上次运行时提供的内容。 |
| 状态 | 请参阅下表。 |
| 操作 | 此刻适用于该插件的按钮(见下文)。 |
| 状态 | 含义 |
|---|---|
| 正常 | 正在运行并能响应。 |
| 正在启动… | 正在启动。页面每秒重新检查一次,直到状态稳定。 |
| 未使用 | 不是渲染器的绘制插件,或者没有任何内容设为由其绘制时的渲染器。它没有运行,也不占用内存(见下文“未使用”)。 |
| 未响应 | 正在运行,但 10 秒内没有响应。Input.Observer 会重新启动它。 |
| 已禁用 | 已通过 禁用 关闭。 |
| 已自动禁用——启动失败 | 连续多次启动失败。Input.Observer 已停止尝试(见下文“插件失败时”)。 |
| 已被插件关闭 | 插件有意自行关闭。它会保持关闭,直到您选择 重试、先禁用再启用它,或者重新启动 Input.Observer。 |
操作 中的按钮:
| 按钮 | 何时显示 | 作用 |
|---|---|---|
| 用作渲染器 | 已打开但不是渲染器的绘制插件 | 将其设为渲染器(见下文)。 |
| 设置(齿轮) | 插件有设置,并且正在运行或未使用 | 打开其设置(见下文)。 |
| 预览 / 停止预览 | 插件绘制轨迹、提示或消息 | 显示它绘制的内容(见下文)。 |
| 重试 | 已自动禁用,或已被插件关闭 | 再次启动它并清除失败计数。 |
| 允许回调 / 阻止回调 | 插件提供脚本函数或脚本引擎 | 请参阅下文“回调”。 |
| 启用 / 禁用 | 始终 | 启动或停止插件,并保持其注册状态。 |
| 删除 | 始终 | 停止插件并忘记它。程序本身不会被删除。 |
当配置中的脚本需要该插件时(在其脚本引擎中运行或调用其函数的脚本),禁用 和 删除 会先询问并列出这些脚本。插件不在时,这些脚本将无法正常工作。
添加插件
- 选择 添加插件… ①,然后选择插件的程序(
.exe)。 - Input.Observer 会先启动该程序一次以询问其名称,然后再次启动它并检查它能否连接和响应。这需要几秒钟。
- 如果通过检查,插件会被添加到列表顶部并保持运行。如果它绘制轨迹、提示或消息,它还会成为渲染器,并会有一条“已更改渲染器”说明加以提示。
如果插件未通过检查,“无法添加插件”会说明原因:文件不存在、程序没有响应或响应错误(它可能不是 Input.Observer 插件)、耗时过长、其名称已被另一个已注册的插件使用,或者其脚本函数或脚本引擎使用了其他插件已在使用的名称。在任何一种情况下都不会添加任何内容。
当插件位于 Input.Observer 自己的文件夹中时,Input.Observer 会以相对于其文件夹的路径保存插件路径,因此安装在 Input.Observer 旁边的插件在 Input.Observer 移动后仍能正常工作。
信任插件
- 添加插件就会运行它。 第 2 步会立即以您的权限启动该程序,此后 Input.Observer 每次启动时都会启动它。Input.Observer 不会检查插件的作者或它是否经过签名。请像运行任何程序之前那样,只添加来自您信任的来源的程序。
- 插件作为独立的程序运行。它永远不会在 Input.Observer 内部运行,Input.Observer 在处理您的鼠标和键盘时也永远不会等待插件,因此缓慢或损坏的插件不会让您的输入延迟。
- 绘制类插件会获得您的手势笔划以及提示和消息的文本,以便绘制它们。
- 带有脚本函数的插件会获得脚本传给这些函数的值。
渲染器
渲染器是为 Input.Observer 进行绘制的那一个插件:绘制轨迹样式,以及在 外观 页面上设为 匹配样式 时的提示和消息。同一时间只有一个插件是渲染器。标准安装会将 Styles 插件注册为渲染器。
要将另一个绘制插件设为渲染器,请选择其所在行上的 用作渲染器。引擎会立即切换:新的渲染器启动,之前的渲染器停止并显示 未使用,新插件能够绘制的轨迹、提示和消息都会设为由它绘制。之后由 外观 页面上的选择决定它绘制什么(外观)。不提供样式的插件会在样式库中以自己的名称显示为单个磁贴;其自身设置决定它如何绘制。
禁用或删除渲染器后就没有渲染器了:在您选择另一个之前,由 Input.Observer 的经典轨迹、提示窗口和消息窗口进行绘制。
未使用
Input.Observer 不会运行无事可做的插件。绘制插件只有在它是渲染器并且 外观 页面上有内容设为由它绘制时才会运行。提供脚本函数或脚本引擎的插件只要处于启用状态就始终运行。
未使用的插件会在您打开其设置或预览它时短暂启动,之后恢复为 未使用。Styles 插件会在您最后一次更改其设置约一分钟后停止。脚本对未运行的绘制插件进行的 PluginSendMessage 调用会失败,并报告一条相应的错误;它不会启动该插件。
插件设置
插件所在行上的齿轮会打开其设置:
- 标有 在此设置 的插件会在由配置窗口绘制的窗口中显示其设置,左侧带有分区列表。Styles 插件的设置在手势轨迹中介绍。
- 其他任何具有 设置 的插件会打开它自己的设置窗口。
未在运行的插件会先被启动,因此窗口可能需要几秒钟才能填满内容。更改会立即生效,并由插件自己保存 在配置文件旁边它自己的文件中;它们不等待 应用,放弃 也无法撤消它们。恢复默认值 会将所选分区恢复为插件的默认值。如果无法进行某项更改,窗口中的说明会给出原因:插件未启动或未提供这些设置、未及时响应、拒绝了更改,或者进行了更改但无法保存。
预览
预览 会在不进行真实手势的情况下显示绘制插件将绘制的内容:跟随指针的轨迹、示例提示和示例消息。右键单击可查看轨迹结束并重新开始;预览期间右键单击不会打开任何内容。
预览运行期间,手势在所有地方都会暂停,页面上的横幅会加以说明。当您按 Esc、选择 停止预览、离开 插件 页面或插件停止时,预览结束。宏录制或手势训练进行期间无法开始预览。
插件失败时
Input.Observer 每 5 秒检查一次每个正在运行的插件。
- 停止响应的插件 在 10 秒内(两次检查未通过)没有响应时会显示 未响应 并被重新启动。
- 意外退出的插件 会在 10 秒后重新启动。
- 启动失败的插件 会在 2、5 和 10 秒后重试。第三次尝试失败后,它会变为 已自动禁用——启动失败,Input.Observer 将不再理会它(即使重新启动也是如此),直到您选择 重试。插件无故障运行 5 分钟后,失败计数会归零。
- 有意自行关闭的插件 会显示 已被插件关闭,并且不会重新启动,直到您选择 重试、先禁用再启用它,或者重新启动 Input.Observer。
渲染器停止期间,由 Input.Observer 的经典轨迹、提示窗口和消息窗口代为绘制,外观 页面会加以说明并提供一个 重新启动 按钮。每次发生这种情况时,都会向控制台的 系统 部分写入一行(控制台)。
Input.Observer 启动时,会启动每个有工作要做的插件,并为每个插件最多等待约 5 秒;启动画面会显示正在加载的插件名称。错过该时间的插件会在稍后被接管。Input.Observer 退出时会关闭所有插件,插件永远不会在 Input.Observer 停止后继续运行。在安全模式下不会启动任何插件(故障排除)。
回调
提供脚本函数或脚本引擎的插件可能会在处理调用时请求运行 Input.Observer 脚本。除非您在其所在行上选择 允许回调 并确认,否则这会被阻止。请只对您信任的插件允许此操作:之后它的请求可以执行此处脚本能执行的任何操作——按键、移动和关闭窗口、运行程序——包括在以管理员身份运行的窗口中执行,而插件本身无法访问这些窗口。阻止回调 会再次收回该权限。