什么是键鼠精灵?

您可以从 AppStore 下载 键鼠精灵。我们致力于将 键鼠精灵 打造为史上最能满足您需要的键盘和鼠标自动化工具。如果您有任何建议或意见,请直接告诉我们。我们将回复每一封反馈邮件。.
什么是键鼠精灵?
键鼠精灵 是 Mac 平台上的一款 Mac 操作自动化工具。如果您出于测试目的而需要向应用自动输入一些文字,键鼠精灵 能完美地帮您完成这个任务。键鼠精灵支持如下自动化操作与测试工具:
- 模拟键盘操作,包括单个按键,或者连续输入文字
- 模拟鼠标操作,包括移动、点击、滚动滚轮、长按与拖动
- 数值计算与处理
- 文本识别与处理
- 图像识别与处理
- 灵活多变的屏幕截图
- 自动化复制与粘贴
- 固定延时、随机延时与条件延时
- 灵活调用第三方应用
- 灵活调用终端命令
- 脚本嵌套与循环
- 变量系统
- 条件判断
- 可编程的交互,包括音频、闪烁与弹窗
脚本
在左侧边栏的脚本列表中,用鼠标单击选中一个脚本,然后按下硬件键盘上的删除键。或者,用鼠标右键单击该脚本,然后在弹出的跟随式菜单中选择 删除。
在脚本编辑器中,选中一个脚本,然后点击 按钮,再点击 分享 或者 分享为受保护形式。
受保护的脚本不允许查看、编辑,也不会产生日志。
语句
在键鼠精灵中,一个脚本由若干条语句组成。每条语句表达了一定的语义逻辑,并控制执行流程。
在键鼠精灵中,如果语句、那么语句、否则语句、返回语句、结束语句都不是严格意义上的语句,而仅仅是习惯上被被称为语句。
在习惯上,当一条语句包含一个或多个前提条件时,这些条件被称为 如果语句。当这些条件都满足时,所执行的动作被称为 那么语句。反之,当这些条件不满足时,所执行的动作称为 否则语句。在键鼠精灵中,那么语句 和 否则语句 都仅仅包含单条动作。
排序
使用鼠标拖动一条语句,可以改变它在语句列表中的顺序。
删除
在脚本编辑器中,用鼠标右键单击一条语句,然后在弹出的跟随式菜单中选择 删除。
在默认情况下,一条语句仅仅包含一个动作。当执行一条语句时,实际上是在执行该语句所包含的动作。
然而,我们可以为任意一条语句插入 如果。一条 如果 (子)语句是由若干 条件 组成的。当且仅当一条语句的全部前提条件都满足时,才会执行该语句所包含的动作(此时称为 那么)。也就是说,一条 如果 (子)语句所包含的所有条件都是 并 条件。
当一条语句的全部前提条件都满足时,所执行的动作被称为 那么(子)语句。
在默认情况下,一条语句仅仅包含一个动作。当为这个语句添加一个或一组条件之后,这个动作就被称为 那么 (子)语句。
如果一条 如果 语句的条件无法全部满足,那么会执行 否则 (子)语句(实际上是一条动作)。
键鼠精灵目前并不支持循环语句,但支持脚本级别的重复。
如果希望实现 “在循环之前赋值” 的效果,可以通过让子脚本重复,然后让主脚本在调用子脚本之前对变量赋值。键鼠精灵自带了一个官方脚本例子 “计数”。为了观察此示例脚本的效果,用户可以先打开任意一个支持文本输入的窗口,然后点击 Mac 系统状态条上的 键鼠精灵 图标,唤出菜单,依次点击菜单上的 运行 --> 通用 --> 计数。
返回语句会退出当前脚本。
返回语句并不会直接返回一个“值”给上一级脚本。相反,如果希望返回一个值给上一级脚本,应该在调用返回语句之前将“返回值”存储入一个通用变量之中,然后在上一级脚本中读取这个变量的值。这是因为,在键鼠精灵中,变量的有效范围是全局的,被所有脚本所共享。
在键鼠精灵中,它被实现为一条 返回 动作。
退出语句,有时又称为结束语句、中止语句、停止运行语句。该语句会中止整个脚本的运行。这意味着它不但会停止运行当前脚本,还会逐级停止当前脚本的上一级脚本,最终停止"根"脚本。
在键鼠精灵中,它被实现为一条 结束 动作。
动作
自动点击物理键盘上的一个键,或者组合键。
以预定的速度和次序,连续点击物理键盘上的一系列按键,以自动输入一段文本。
移动鼠标指针到指定位置,或者在指定位置上点击鼠标指针。
- 将鼠标指针移动到屏幕/窗口中文字所在位置
- 将鼠标指针移动到窗口中颜色所在位置
- 将鼠标指针移动到窗口中图片所在位置
- 将鼠标指针移动到屏幕/窗口中指定位置
- 相对于鼠标指针的当前位置,做出相对移动
在指定位置上点击鼠标,包括:
- 识文点击:点击屏幕/窗口中的文字
- 识色点击:点击窗口中的颜色
- 识图点击:点击窗口中的图片
- 绝对点击:点击屏幕/窗口中的位置
- 相对点击:点击鼠标当前位置,或者偏移一定距离。
匹配精度
在定位颜色和图片所在位置时,可以使用不同的匹配精度:
- 精确:最严格、最小范围、最快、容易遗漏
- 适中:推荐
- 宽松:最宽松、最大范围、最慢、容易误纳入无关结果
在定位子图片所在位置时,为了提高识别速度和正确率,建议:
- 所查找的子图片的尺寸不超过 32 X 32。
- 所查找的子图片的内容,相对于大图中的其它内容,具有视觉独特性(该子图块在整体图片中出现得越少越好)。
- 所查找的子图片的第一个像素,即左上角的那一个像素,具有独特性(该像素的颜色在整体图片中出现得越少越好)。
查找范围
当界面中有多处出现相同/相似的内容时,为了区分它们,也为了加速搜索过程并提高准确度,建议指定适当的搜索范围。
如果我们把整个区域看作一个九宫格,
↖️ | ⬆️ | ↗️ |
⬅️ | ❤️ | ➡️ |
↙️ | ⬇️ | ↘️ |
那么,定义如下搜索区域
- 全部
- 上:上方三分之一↖️⬆️↗️
- 中:中间三分之一⬅️❤️➡️
- 下:下方三分之一↙️⬇️↘️
- 左上:左上方九分之一↖️
- 右上:右上方九分之一↗️
- 左下:左上方九分之一↙️
- 右下:右下方九分之一↘️
此动作可以截获屏幕或窗口的当前显示内容。
您可以指定截图范围,比如
- 整个屏幕
- 屏幕指定区域
- 指定窗口
- 指定窗口的指定区域
您还可以指定所需截图区域的相对位置。比如
- 如果您想截取窗口的左上角,且截图区域的长和宽均为 100,您可以指定区域为 (0, 0, 100, 100)。
- 如果您想截取窗口的右上角,且截图区域的长和宽均为 100,您可以指定区域为 (-100, 0, 100, 100)。
- 如果您想截取窗口的左下角,且截图区域的长和宽均为 100,您可以指定区域为 (0, -100, 100, 100)。
- 如果您想截取窗口的右下角,且截图区域的长和宽均为 100,您可以指定区域为 (-100, -100, 100, 100)。
指定窗口标题
在 MacOS 上,大部分应用都会同时存在多个窗口。比如,当一个应用弹出 "关于" 对话框后,会出现至少两个窗口。其中一个是主窗口,另一个是“关于”窗口。对于 Safari 应用,每个打开的标签页都有其各自对应的窗口。为了区分这些窗口,可以指定参数 窗口标题。对于 Safari 应用,实际上是限定所抓取指定的标签页。
优化性能
有一些技巧可以优化抓取屏幕内容时的性能:
- 在选择优化选项时,选择 性能优先 而不是 质量优先。
- 尽可能的缩小目标窗口的大小,仅露出关键区域。
- 将所抓取的图片输出到 变量 而不是 系统粘贴板。
文字识别动作支持从图片中识别文字,无论该图片来自粘贴板,还是某个变量。
显然,一张图片有可能包含不止一段文字。所以,文字识别动作返回的是所有被识别到的文字所组成的数组(并以 JSON 编码为字符串),而不是一个基本变量。比如,当该图片仅包含一个数字 32 时,动作返回识别结果 "[32]"。我们可以先利用 从JSON解码为数组 动作,将识别结果从 JSON 转化为数组 [32]。然后,利用 获取第一个元素 动作获取该数组的第一个元素 32。
弹出一个模态对话框。
发送一个在当前设备上显示的通知,称为本地通知。本地通知用于提醒用户进行某些操作或者通知用户关于脚本运行状态的信息。
变量
变量是用于储存内容(如文本、数值、图像或其它)的容器。使用变量是扩展您的脚本功能,使其更加灵活和强大的最佳方法。
变量、数组和字典
型雕内置支持三种主要变量类型:基本变量、数组和字典。
- 基本变量,通常简称为变量,不但可以用于存储文本,还可以用于存储以文本表示的数值(比如"123")和图像。
- 数组,是由任意数量的文本元素组成的有序的数据列表。允许使用列表索引(即在列表中的序号)来访问数组中的数据元素。数组允许以 JSON 数组的形式保存到变量中。
- 字典,是由任意数量的键值对组成的数据结构。若要获取字典中特定键的值,你可以使用 获取字典值 动作并指定键名。字典允许以 JSON 字典的形式保存到变量中。
在键鼠精灵中,变量的有效范围是全局的,被所有脚本所共享。
付费与内购
如下功能需要付费:
- 变量
- 计算引擎
- 条件
- 流程控制(如果/否则/返回)与错误处理
- 导出/导入
比如,在为脚本增加新动作时,待选动作列表中的部分动作是灰色的,无法选取。这代表这些动作是付费功能,将在付费后解锁。
键鼠精灵有两种付费方式:一次性付费与订阅会员。其中,订阅会员又分为按年订阅和按月订阅。
这些付费方式在软件功能权限上没有任何区别,都是直接解锁全部功能。只不过一个是买,一个是租。一次性付费是买,订阅是租。
常见的问题是付费后发现没有成功激活,导致需要付费的功能仍然处于被锁定状态。这通常是因为网络原因或者AppStore的原因造成的。
应用内嵌了 Apple 提供的购买界面,而内嵌的 AppStore 完全由 Apple 维护其逻辑,然后告诉软件是否已经付费。如果你已经成功完成了付费,并且看到购买成功提示,理论上就一定会有效果。如果暂时没有生效,建议你
- 重启应用后再试(需要保证网络联通,AppStore 才会把验证结果告知你的 Mac,进而告知应用)
- 点击应用内嵌的 AppStore 中的 恢复 按钮。
请放心,对于同一个项目(一次性付费/月付/年付),无论点击多少次都不会重复付费。AppStore 会告诉你已经购买过此项目。
隐私与安全性
此应用可以为您执行大量的自动化任务。为此,您需要授权它来完成这些操作。所需要的系统权限列表会根据 macOS 版本的不同而略有区别。在大多数情况下,您需要打开 系统设置 中的 隐私与安全性 来授权。
辅助功能
授权允许控制窗口、菜单、鼠标、键盘,并监控鼠标和键盘操作。此权限被用于实现如下自动化任务:
- 监控鼠标操作
- 监控键盘操作
屏幕录制
授权允许录制屏幕。此权限被用于实现如下自动化任务:
- 屏幕截图,并放入指定变量,供后续处理。
- 文本识别,并将识别到的文本放入指定变量,供后续处理。
- 识图点击:点击屏幕或指定应用窗口中的指定图片。
- 识文点击:点击屏幕或指定应用窗口中的指定文字。
隐私政策
不收集数据。
开发者不会从此应用中收集任何数据。
哪些应用功能需要用到屏幕录制?
- 屏幕截图,并放入指定变量,供后续处理。
- 文本识别,并将识别到的文本放入指定变量,供后续处理。
- 识图点击:点击屏幕或指定应用窗口中的指定图片。
- 识文点击:点击屏幕或指定应用窗口中的指定文字。
虽然为了实现此应用的功能特性,此应用需要获取一些系统权限,比如录制屏幕、监控鼠标键盘等,但这些权限仅用于实现用户主动发起的操作自动化任务,并不会上报给开发者。
应用会通过录制屏幕收集哪些数据?
此应用会根据用户的要求(用户自行编写的脚本),采集用户所指定的图像或文本。此应用本身或者开发者不会收集任何数据。
出于何种目的收集上述数据?计划如何使用这些数据?
此应用不收集任何数据。也无任何计划收集或使用任何数据。
数据会被分享给第三方吗?
不会。
数据存储在哪里?
数据存储在计算机随机访问存储器(RAM)里。如果应用退出,或者计算机关机或重启,数据会丢失。如果用户选择把数据输出到系统粘贴板。那么用户可以通过 macOS 粘贴板而不是本应用来访问自己所收集的数据。