English

什么是键鼠精灵?

键鼠精灵 是 Mac 平台上的一款 Mac 操作自动化工具。如果您出于测试目的而需要 根据实际情况 自动操作您的 Mac 或 iPhone,键鼠精灵 能完美地帮您完成这个任务。

您可以从 AppStore 下载 键鼠精灵。我们致力于将 键鼠精灵 打造为史上最能满足您需要的键盘和鼠标自动化工具。如果您有任何建议或意见,请直接告诉我们。我们将回复每一封反馈邮件

目录

什么是键鼠精灵?

键鼠精灵 是 Mac 平台上的一款 Mac 操作自动化工具。如果您出于测试目的而需要 根据实际情况 自动操作您的 Mac 或 iPhone,键鼠精灵 能完美地帮您完成这个任务。

键鼠精灵支持如下自动化操作与测试工具:

提示: 此应用需要开启相应地系统权限。 此权限列表根据 macOS 版本而略有区别。比如,您需要打开 系统设置 中的 隐私与安全性 ,然后在 可访问性、屏幕与系统音频录制、文件与文件夹 等选项中允许此应用。

回到目录

脚本

录制脚本

按以下步骤录制指定窗口内的鼠标和键盘操作:

新录制的脚本将会自动出现在左侧边栏的脚本列表中。

回到目录

删除脚本

在左侧边栏的脚本列表中,用鼠标单击选中一个脚本,然后按下硬件键盘上的删除键。或者,用鼠标右键单击该脚本,然后在弹出的跟随式菜单中选择 删除

导出与分享

在脚本编辑器中,选中一个脚本,然后点击 Export 按钮,再点击 分享 或者 分享为受保护形式

受保护的脚本不允许查看、编辑,也不会产生日志。

回到目录

语句

在键鼠精灵中,一个脚本由若干条语句组成。每条语句表达了一定的语义逻辑,并控制执行流程。

在键鼠精灵中,如果语句、那么语句、否则语句、返回语句、结束语句都不是严格意义上的语句,而仅仅是在习惯上被称为语句。

在习惯上,当一条语句包含一个或多个前提 条件 时,这些条件被称为 如果语句。当这些条件都满足时,所执行的动作被称为 那么语句。反之,当这些条件不满足时,所执行的动作称为 否则语句。在键鼠精灵中,那么语句否则语句 都仅仅包含单条动作。

排序

使用鼠标拖动一条语句,可以改变它在语句列表中的顺序。

删除

在脚本编辑器中,用鼠标右键单击一条语句,然后在弹出的跟随式菜单中选择 删除

提示: 在使用鼠标右键点击语句时,应避开文本输入框,否则会无法正确弹出右键菜单。

回到目录

控制流程

如果、那么、否则

如果那么否则,统称为 条件语句

条件语句

在默认情况下,一条语句仅仅包含一个动作。当执行一条语句时,实际上是在无条件地执行该语句所包含的动作。

然而,我们可以为任意一条语句插入 如果。一条 如果 (子)语句是由一条或多条 条件 组成的。当且仅当一条语句的全部或部分条件满足时,才会执行该语句所包含的动作。仅在 条件满足 时才会执行的动作被称为 那么(子)语句。而如果一条 如果 语句的条件无法全部满足,则可以跳过此语句,或者执行另一个动作。仅在 条件不满足 时才会执行的动作被称为 否则 (子)语句。

与条件、或条件

当一条语句同时包含多个条件时,这些条件有两种组合逻辑:

当语句含有多个条件时,可以改变它们的组合逻辑:

组合条件
提示:仅支持在同一条语句的多个条件之间使用相同的组合逻辑。也就是说,一条语句所包含的所有条件要么都是 与 条件,要么都是 或 条件。

回到目录

循环

键鼠精灵并不直接支持循环语句,但支持脚本级别的循环。我们可以利用让脚本 限定次数重复无限重复有条件重复或者 Continue 语句 来实现脚本级别的循环。

如果希望实现 “在循环之前赋值” 的效果,可以通过让子脚本重复,然后让主脚本在调用子脚本之前对变量赋值。键鼠精灵自带了一个官方脚本例子 “计数”。为了观察此示例脚本的效果,用户可以先打开任意一个支持文本输入的窗口,然后点击 Mac 系统状态条上的 键鼠精灵 图标,唤出菜单,依次点击菜单上的 运行 --> 通用 --> 计数

条件重复

持续反复执行当前脚本,直到某个特定的条件为真为止。

回到目录

继续(Continue)

Continue (继续) 语句,放弃当前脚本的后续语句,返回当前脚本的开头,重新执行当前脚本。

在键鼠精灵中,Continue 语句被实现为一条 Continue 动作,通常用于实现脚本级别的循环。

调用(子脚本)

调用另一个脚本。此时,该脚本常被称为父脚本(调用者)。被调用的脚本被称为子脚本。

注意:键鼠精灵允许脚本同名。所以,在调用另一个脚本时,应小心不要错误调用了另一个同名的无关脚本,特别是当用户自定义脚本与键鼠精灵的内置脚本同名时。

返回

返回语句会退出当前脚本,返回到上一级脚本,即调用当前脚本的脚本。

返回语句并不会直接返回一个“值”给上一级脚本。相反,如果希望返回一个值给上一级脚本,应该在调用返回语句之前将“返回值”存储入一个通用变量之中,然后在上一级脚本中读取这个变量的值。这是因为,在键鼠精灵中,变量的有效范围是全局的,被所有脚本所共享。

在键鼠精灵中,它被实现为一条 返回 动作。

退出

退出语句,有时又称为结束语句、中止语句、停止运行语句。该语句会中止整个脚本的运行。这意味着它不但会停止运行当前脚本,还会逐级停止当前脚本的上一级脚本,最终停止"根"脚本。

在键鼠精灵中,它被实现为一条 结束 动作。

回到目录

条件

颜色相似(窗口取色)

窗口取色比较:获取窗口中指定位置的像素颜色,并与指定颜色比较。如果相似,则判定为真。否则,判定为假。

注意:此条件包含若干隐藏条件。如果窗口截屏失败,或者像素位置错误,或者不相似,则判定结果为假。
注意:如果需要同时比较窗口中多个像素的颜色,建议先进行窗口截屏,然后进行“图片取色比较”,即比较所获取的图像内容中的这些像素,这样会更加高效。

颜色相似

如果被比较的两者皆为颜色,而且相似,则判定为真。否则,判定为假。

注意:此条件包含隐藏条件“两者皆为颜色”。如果任何一个不是颜色(特别是被比较的是变量内容时),则判定结果为假。

图像相似

如果被比较的两者皆为图片,而且相似,则判定为真。否则,判定为假。

注意:此条件包含隐藏条件“两者皆为图片”。如果任何一个不是图片(特别是被比较的是变量内容时),则判定结果为假。

图像包含文本

如果前者所指定的图片包含后者所指定的文本,则判定为真。否则,判定为假。

注意:此条件包含隐藏条件“前者为图片”。如果前者不是图片(特别是被比较的是变量内容时),则判定结果为假。

回到目录

动作

键盘按键

自动点击物理键盘上的单个按键,或者组合键。

如何指定一个键?

为了指定或修改所希望按下的键,打开动作编辑器,展开动作详情,用鼠标点击该动作所指定的键。该键会高亮。然后,在硬件键盘上按下一个键。编辑器会录制到所按下的键,将其指定为该动作的键。

提示: 如果该键/键组合已经被键鼠精灵、其它应用或者 macOS 做为热键占用,编辑器有可能无法录制到击键事件。
硬件辅助

对于某些特殊场景,或者特殊应用,需要使用特殊专用硬件来辅助完成键盘操作。此时,需要在动作编辑器中开启 硬件辅助 选项(提示:需要先开启 专家模式,才能看见此选项。)

硬件辅助

回到目录

键入文本

以预定的次序和速度,连续点击物理键盘上的一系列按键,以自动输入一段文本。

提示: 这段文本仅能由物理键盘上的按键组成。所以,此方法不支持不直接在物理键盘上出现的字符。比如,不适用于键入中文。
提示: 在执行此动作以自动化键入文本之前,请确保是否已经提前打开了目标应用窗口,并且已经提前激活了文本输入区域的焦点。否则这些击键将被系统忽略。(典型标志是系统会发出相应数量的“无焦点击键”提示音。)
硬件辅助

对于某些特殊场景,或者特殊应用,需要使用特殊专用硬件来辅助完成键盘操作。此时,需要在动作编辑器中开启 硬件辅助 选项(提示:需要先开启 专家模式,才能看见此选项。)

回到目录

鼠标操作

通过键鼠精灵,我们可以移动、点击或拖动鼠标。

移动鼠标指针到指定位置,或者在指定位置上点击鼠标指针。

在指定位置上点击鼠标,包括:

提示: 在窗口内移动或点击鼠标前,请先确保该窗口处于打开状态并位于前台。参见 打开应用 语句。

相似度

在找图、找色操作中,会计算每个“疑似”对象与目标对象的匹配程度。如果相似度大于指定的门槛,则匹配成功。

因此,在图、色类操作中,所设定的相似度参数越高,则所找到的对象与目标对象越相似,但成功找到匹配对象的概率越低。如果发现误差太大,则建议调高相似度门槛。如果无法找到,则建议调低相似度门槛。

提示: 苹果设备(iPhone/iPad/Mac)上的实际颜色会根据系统当前外观(深色/浅色模式)、镜像窗口的缩放而变化。在查找颜色所在位置时,所指定的颜色应尽量与实际情况匹配,并且使用适当的匹配精度。

查找速度

在定位子图片所在位置时,为了提高识别速度和正确率,建议:

额外匹配条件

在执行文本、图片类鼠标操作时,为了应对窗口中含有多个目标对象(文本、图片)的情况,可以使用一些额外的匹配条件,来过滤掉无关目标。比如,进一步要求目标对象附近有指定的文本或图片。

点击文本附近的文本

如上图所示,我们希望点击文字“Target”,但图中有三处“Target”。为了排除干扰,我们可以设定仅点击位于文字“Click Here”附近的“Target”。

回到目录

屏幕截图

此动作可以截获屏幕或窗口的当前显示内容。

您可以指定截图范围,比如

当指定截图区域时,您需要指定该区域的位置(起点)和大小(长宽)。在指定位置时,起点位于屏幕或窗口的左上角。当指定屏幕区域时,所指定的是该区域在屏幕上的绝对位置。当指定窗口区域时,所指定的是该区域在窗口中的相对位置。比如,假设截图区域的长和宽均为 100,而且:

提示: 此动作需要开启 录制屏幕 权限。 开启方式为:打开 系统设置 中的 隐私与安全性 ,然后在 屏幕与系统音频录制 选项中允许此应用。
提示: 当一个窗口处于前台和后台状态时,它的显示内容通常会有所不同。建议在进行窗口截屏之前,先打开这个应用,使之处于前台状态。

指定窗口标题

在 MacOS 上,大部分应用都会同时存在多个窗口。比如,当一个应用弹出 "关于" 对话框后,会出现至少两个窗口。其中一个是主窗口,另一个是“关于”窗口。对于 Safari 应用,每个打开的标签页都有其各自对应的窗口。为了区分这些窗口,可以指定参数 窗口标题。对于 Safari 应用,实际上是限定所抓取指定的标签页。

提示: 当为 Safari 应用指定窗口标题后,要求拥有该标题的标签页必须是 Safari 应用的当前标签页,否则脚本会在日志中报告 “无法找到窗口”。

回到目录

文字识别

文字识别动作支持从图片/窗口内容中识别文字。

显然,一张图片有可能包含不止一段文字。所以,文字识别动作返回的是所有被识别到的文字所组成的数组,而不是一个基本变量。比如,当该图片仅包含一个数字 32 时,动作返回识别结果 ["32"]。我们可以利用 获取第一个元素 动作获取该数组的第一个元素 32

提示: 最容易犯的使用错误是,误将文本识别动作的识别结果当作一个文本,特别是当图片仅仅含有单个文本时。

文本识别结果与语言有关。比如,如果把被识别的语言设定为英文,就无法正确识别出图片中的中文。

提示: 如果动作“识别图片/窗口中的文本”可以成功识别出文本,然而条件“图片/窗口中含有文本”却无法识别出相同的文本,可能是因为这两处所设定的语言不同。

回到目录

文字转语音

文字转语音(TTS)能将多种语言的文本合成为语音,并朗读出来,从而支持自动化语音控制,特别适合于支持语音控制的场景(比如某些 iPhone 应用)。

文字转语音
提示: 如果所设定的朗读语言与该文本的真实语言不符(比如设定朗读语言为英文,但文本实际上为中文),则可能无法正确地朗读文本。

回到目录

弹窗提示

弹出一个模态对话框,用以显示一些信息,或者获取用户输入内容。

弹窗提示
提示: 任何情况下,只能同时弹出一个对话框。如果同时执行多个弹窗动作,仅会成功弹出第一个对话框。

发送通知

发送一个在当前设备上显示的通知,称为本地通知。本地通知用于提醒用户进行某些操作或者通知用户关于脚本运行状态的信息。

发送通知
提示: 此动作仅仅向Mac设备发送一个本地通知,而不保证此通知必然会被Mac设备显示。用户可以设置 Mac 设备,使其显示或不显示通知。请参考 Apple 提供的 Mac 使用手册,来获知更多信息。

回到目录

设置状态项标题

设置或移除 键鼠精灵 在系统右上方状态栏上的标题文字。此动作可以用于提示系统当前状态,或者脚本的当前运行状态。

设置状态项标题
提示: 状态栏的标题文字的最大长度为 20 个字符,并不应含有特殊字符。

回到目录

变量

变量是用于储存内容(如文本、数值、图像或其它)的容器。使用变量是扩展您的脚本功能,使其更加灵活和强大的最佳方法。

提示: 如需使用变量,请先开启 专家模式。

变量、数组和字典

型雕内置支持三种主要变量类型:基本变量、数组和字典。

粘贴板

在键鼠精灵中,系统粘贴板通常被作为一种特殊变量来使用。粘贴板比普通变量更加方便,特别是用户在开发和调试脚本时,可以轻易观察当前步骤的运行情况。尽管如此,在正式运行脚本时,应尽量使用变量,而不是粘贴板。这是因为:

用户变量

除了内置变量之外,用户还可以自行定义变量,通常称为用户变量,自定义变量,或者“有名”变量。

用户变量都是基本变量,按名访问。比如

作用域

在键鼠精灵中,变量的有效范围是全局的,被所有脚本所共享。

提示: 因此,我们必须小心避免脚本之间的相互干扰。

回到目录

脚本示例

这里讨论一些常见的脚本的编写思路。

需求:假设有一个应用场景,监控屏幕上的某个区域。如果此区域变成预设图片A,那么键盘按下自定义“1”建。如果此区域变成预设图片B,那么键盘按下自定义“2”建。

上述需求可以参考以下的逻辑流程:

将脚本设置为无限循环,其中包含如下流程:

其中,A和B可以通过抓屏来获取。

上述脚本足够简单,非常适合于新手入门。但是,它却也隐藏了太多的细节。如果执行结果并非预期,难以观察其中究竟是哪一步出了问题。为此,可以尽量拆分其中的步骤,改写为下面的形式:

然后,开启专家模式,开启右侧边栏中的日志界面,运行脚本,观察执行过程。

回到目录

优化性能

关闭日志

关闭 日志文件日志,可以提高脚本运行性能。

优化抓屏性能

有一些技巧可以优化在抓取屏幕内容时的性能:

优化图像识别性能

有一些技巧可以优化在识别图像内容时的性能,比如识别文本、识文点击、识文移动、识文拖动、识别条码/二维码时的性能。

防止在后台小憩

如果 键鼠精灵 的窗口长期完全隐藏在其它窗口的背后,macOS 会使其进入 应用小憩 状态,降低它的运行速度,从而让前台窗口的性能表现更佳,并节约电能。然而,如果我们想让 键鼠精灵 长时间在后台高性能运行(比如在后台实时监视某个窗口的内容变化),避免使其进入 小憩 状态,可以最小化 键鼠精灵 的窗口(而不是直接任由窗口被其它窗口遮盖)。

回到目录

专家模式

键鼠精灵 支持两种工作模式。

在默认情况下,键鼠精灵 工作在 初学者模式。依次打开 键鼠精灵 > 设置 > 高级,切换 新手入门高级专家

专家模式

提示: 当您找不到您想要的功能时,请尝试开启 专家模式。

回到目录

付费与内购

付费后能获得哪些功能?

付费后,用户能获得如下功能:

比如,在为脚本增加新动作时,待选动作列表中的部分动作是灰色的,无法选取。这代表这些动作是付费功能,将在付费后解锁。

一次性付费 vs. 订阅

键鼠精灵有两种付费方式:一次性付费与订阅会员。其中,订阅会员又分为按年订阅和按月订阅。

这些付费方式在软件功能权限上没有任何区别,都是直接解锁全部功能。只不过一个是买,一个是租。一次性付费是买,订阅是租。

激活

在付费完成后,如果发现需要付费的功能仍然处于被锁定状态,通常是因为网络不畅,或者因为 AppStore 故障。

应用内嵌了 Apple 提供的购买界面,而这个内嵌的小商店完全由 Apple 维护其逻辑。Apple 保证,当用户完成付费后,Apple 会告诉软件是否已经付费。然而,如果 Apple 没有这么做,建议你:

请放心,对于同一个项目(一次性付费/月付/年付),无论点击多少次都不会重复付费。AppStore 会告诉你已经购买过此项目。

回到目录

隐私与安全性

此应用可以为您执行大量的自动化任务。为此,您需要授权它来完成这些操作。所需要的系统权限列表会根据 macOS 版本的不同而略有区别。在大多数情况下,您需要打开 系统设置 中的 隐私与安全性 来授权。

隐私与安全性

如上图所示,如果图中两项都显示绿色,表示已经此应用已经获得了系统授权。

辅助功能

授权允许控制窗口、菜单、鼠标、键盘,并监控鼠标和键盘操作。此权限被用于实现如下自动化任务:

屏幕录制

授权允许录制屏幕。此权限被用于实现如下自动化任务:

回到目录

隐私政策

不收集数据。

开发者不会从此应用中收集任何数据。

哪些应用功能需要用到屏幕录制?

虽然为了实现此应用的功能特性,此应用需要获取一些系统权限,比如录制屏幕、监控鼠标键盘等,但这些权限仅用于实现用户主动发起的操作自动化任务,并不会上报给开发者。

应用会通过录制屏幕收集哪些数据?

此应用会根据用户的要求(用户自行编写的脚本),采集用户所指定的图像或文本。此应用本身或者开发者不会收集任何数据。

出于何种目的收集上述数据?计划如何使用这些数据?

此应用不收集任何数据。也无任何计划收集或使用任何数据。

数据会被分享给第三方吗?

不会。

数据存储在哪里?

数据存储在计算机随机访问存储器(RAM)里。如果应用退出,或者计算机关机或重启,数据会丢失。如果用户选择把数据输出到系统粘贴板。那么用户可以通过 macOS 粘贴板而不是本应用来访问自己所收集的数据。

回到目录