Quicker 是一款 Windows 平台的效率工具,由独立开发者 @崔亮 开发。Quicker 的使用逻辑和软件启动器比较接近,在快捷调用的基础上增加了更深度的功能。它的亮点在于用户可以通过可视化编程的方式编写属于自己的动作,堪称 Windows 上的捷径。
诸如「为软件、操作、文字建立捷径」「为多个相关操作建立捷径」「一键翻译」「批量解散文件夹」等操作,都是 Quicker 功能的一部分。
Quicker 的开发速度很快,它的功能从不断变化到趋于稳定,官方共享库中有意思的动作也是层出不穷。如今 Quicker 即将迎来它的 0.12.0 版本,虽然版本号很保守,但功能已经做的相当全面了。这一版本对面板和文件夹做了一次大的改动,借此机会来详细讲讲如何制作 Quicker 组合动作。
基本操作:认识面板、触发方式
Quicker 主体设计的非常简洁,很多功能和窗口都被隐藏在了软件的背后。我们从最简单的开始讲起。首先是它的主面板和触发方式。
Quicker 的主面板
我们从主面板开始讲起。主面板分为上下两个部分:全局面板区域和上下文面板区域。
- 全局面板区域:指的是上半部分 3×4 的区域,全局动作面板会在任何情况下显示。
- 上下文面板区域:指的是下半部分 4×4 的区域。通用动作面板则会根据当前窗口自动变化。比如我在 Chrome 中触发 Quicker,那么通用动作面板就会显示 Chrome 相关的动作。
有了这样的设计,就可以同时使用全局动作和上下文动作,全局面板可以用来打开软件、切换面板。上下文面板可以针对某个软件进行定制化操作。
这两个区域的格子数量是固定的,面板的每一个格子都可以放置一个动作。如果 12/16 格摆不下,你可以点中间腰栏左侧的 ☰ 按钮进入面板管理界面,点击添加面板来增加一个面板,有点类似在手机主屏幕上增加一屏。增加之后的屏幕可以通过鼠标滚轮进行页面切换。
触发 Quicker 的 10 种方法
了解了基础面板,我们需要一个让自己感到舒服的方式触发 Quicker。默认的触发方式是按下鼠标中键。
触发 Quicker 的设置在「设置 - 弹出面板 - 激活方式」中,允许你通过鼠标,用 9 种不同的方式来触发它。难能可贵的是,Quicker 考虑到了很多鼠标上闲置的 X1、X2 辅助按键、滚轮左移等按键,这样就不必占据中键等使用频率较高的按钮了,相当于在鼠标上设置了一个「Quicker 键」。如果你是键盘党,也可以用单击 Ctrl 键和自定义全局快捷键来触发。这些触发方式可以设置多个,同时使用。
如果是游戏玩家,游戏玩到一半按了中键弹出了窗口该怎么办呢?在「设置 - 弹出面板 - 黑名单」中,有一个在全屏软件中禁用的选项,也可以在这里手动选择窗口。这样就不会在特定软件中用鼠标激活了。
除了触发主面板来调用动作之外,你还可以在动作上「右键 - 悬浮」,把这些动作作为悬浮窗提取出来,要用的时候直接点击即可,不必每次调用主面板。
在底部托盘图标上右键,可以选择暂停弹出和关闭所有悬浮按钮。
了解了主面板和触发方式,接下来就可以开始定制自己的动作了。
初次使用:添加一个基础动作
Quicker 提供了 9 种基础动作类型,分别是启动软件、打开文件、打开文件夹、运行命令、打开网址、模拟按键、发送文本、执行脚本、切换面板。也就是说,如果你不打算用到高级功能,完全可以把 Quicker 当做一个单纯的启动器来使用。
基础动作添加起来也非常简便,都是容易理解的字面意思。以启动软件为例,初次打开时会弹出一个选择界面供你选择,选择后自动添加路径,然后在标题处为这个动作取一个名字,一个动作就添加完了。
与其他启动器不同的是,基础动作也可以实现很多自定义操作,比如添加参数、窗口风格、以管理员身份运行等,甚至考虑到了你在多台电脑上软件路径不一致的问题。
举个例子,我想让 Chrome 以隐身模式启动,通过查阅 Chrome 的文档得知隐身模式的参数是 -incognito
,只要把它填入参数这一栏中,就能实现一键打开 Chrome 的隐身模式了。
这一类动作添加简单快捷,不需要任何代码基础。你可以仅用基础动作在短时间内丰富 Quicker 的面板,把它当成一个启动器来使用。
动作仓库:使用共享库和简单修改
Quicker 组合动作才是它的重头戏。不过在讲解组合动作之前,我们可以通过共享库看看别人是如何制作组合动作的。
Quicker 提供了一个官方的共享库,有网页版和软件内集成。软件内集成的共享库在腰栏的右侧图标中,点击工具箱,就能在窗口中打开共享库窗口。
在共享库窗口中你能看到动作、分享人、安装次数、成功率、点赞数量。目前 Quicker 的通用动作已经有 1800 余个,许多热门软件也有数十到上百个动作。绝大多数动作都是由用户自发制作和上传的。
看到了想要的动作,将它拖拽到主面板中的任意一格,就会弹出安装动作界面,其中会显示动作的详细信息,点击安装就可以添加到自己的面板中使用了。
在网页版添加动作也同样简单,通过复制到剪贴板,在主面板上右键粘贴,也可以安装动作。
大多数动作的使用方法都有所区别,所以有时候要进行二次处理。比如同样是将一段文字翻译成英文,有的动作是获取选中的文本,有的动作是处理剪贴板中的文本。为了统一操作,我们可以在动作编辑器中进行修改。下面就来讲讲如何编写组合动作。
组合动作:编写适合自己的动作
Quicker 的动作编辑器几乎不需要会写代码,只要有完善的逻辑即可实现复杂的操作。如果你有一些编程方面的知识,那制作起来会容易许多。
这一部分我会介绍动作编辑器的基本操作,然后给出两个实例供大家上手试一试。
认识动作编辑器
首先是在面板的空白格上「右键 - 新建组合动作」,进入动作编辑器。
组合动作编辑器有三个部分组成,从左往右依次是步骤模块区域、步骤定义区域、变量定义区域、外观设置区域。这个界面和 Shortcuts 和 Automator 有点像,它们也是把步骤拖进一个流程中,实现完整的动作。
使用左侧步骤模块时,只需要在动作上双击、或拖动到中间的步骤定义区域。就把新步骤加进了动作中,同时需要留意,有些动作是要照顾到输入输出的。
在实际编辑步骤的过程中,你还可以使用快捷键来实现常用的编辑操作。比如按住 Shift + 单击,可以多选几个步骤一次性操作;比如调试时需要禁用步骤,可以用 Alt + 单击禁用。这些操作不用记住,可以在上面的操作提示中查看。
动作编辑器中的每个步骤都有一个编辑界面,接下来看看这些动作是如何做到自己想要的功能的。
编写第一个组合动作
想在 Quicker 中制作一个组合动作,最重要的是步骤和逻辑。最简单的方法是这样的:想想自己会用什么操作实现目的,然后奖步骤组合起来实现。
结合一个具体案例来讲,比如想在 Photoshop 中按下「日期-文件名」的格式保存图片。先在脑中将这个操作分解为电脑可以理解的操作:
- 先另存为。即按下 Ctrl + Shift + S,触发「另存为」操作,此时会打开保存窗口,默认选中当前的文件名。
- 定位光标。即按下 Ctrl + Home。触发「光标跳转到首个字符前」操作。
- 接下来我们需要一个日期。获取日期,将 yyyy-MM-dd 格式的文本存到默认的 context 变量里。
- 有了日期,需要把日期填进去。粘贴日期,将 context 变量粘贴到文本框里。
- 触发「保存」。即按下 Enter,完成本次文件的保存。
理清了逻辑,只要找到 Quicker 中对应的功能,按顺序添加即可——键盘快捷键的操作都是模拟按键步骤;日期相关的操作都可以用获取当前时间步骤;粘贴文本可以用发送文本到窗口步骤,也可以用剪贴板相关的操作文本或图片放入剪贴板步骤,再模拟按键 Ctrl + V 粘贴,最终实现这样一个动作——
这样一来,基本的步骤就做完了,你可以保存后试一下这个动作。
但此时大概率是无法运行的。这就是 Quicker 和捷径的一个不同之处,捷径会「执行完一个操作才会执行下一个」,而 Quicker 则是尽可能快地执行,只要没有加入「等待时间」等步骤,它就会尽可能快地执行。
简单地说,就是这 5 个步骤执行的太快了,也就是几乎同时完成了 5 个步骤。而实际处理时可能连 PS 的保存窗口都没打开。
为了解决这个问题,在这几个快捷键之间,我们需要给电脑一些反应时间。等待时间在 Quicker 中是非常有必要的一个步骤,我们在每个动作之间加上一个等待时间,再试试效果,就可以看到保存界面一闪而过,说明成功保存了。(当然,如果 PS 本身打开窗口的速度太慢,可以将等待时间设置的稍久一些。)
那么一个组合动作就这样完成了。
Tips:为什么不用「鼠标输入」?
尽管 Quicker 的「鼠标输入」步骤能够实现移动相对位置、移动到窗口左上角等操作。但窗口的位置、大小是经常改变的,而且误碰了一下鼠标、桌面的缩放比例(系统设置 - 显示 - 缩放与布局中的百分比)等因素,都会影响鼠标定位。有时候在你的电脑上能够成功运行,但换一台电脑可能就无法运行了。
相比之下,键盘快捷键的触发非常精准,除非有按键冲突,基本不会有预料之外的结果。所以建议各位,优先使用「模拟按键」步骤 ,只有当某软件完全不支持快捷键时,再考虑使用「鼠标输入」的方式实现。
用到变量的组合动作
在工作中,我经常会遇到和文本处理有关的需求。比如 Minja 给我发了一个美区 App Store 的链接,我想把这个链接处理成国区 App Store 链接。一个两个链接我可以手动处理,但如果每天都有一两个,我就会想办法用 Quicker 解决。那么如何一次处理多个链接呢?
我们仍然可以按上面的思路,把「处理链接」这个需求分解为几个步骤:「复制文本,粘贴到可编辑的输入框中,选中 /us/将它改成 /cn/,再选中复制」……不过,这是人类使用 PC 的思路。
对机器来说,对简单数据的处理往往采用在后台静默处理的方式,更快更好也更不容易出错。这就要引入「变量」这一概念,变量可以理解为暂时存放数据的地方。
按机器的思路来看——「先获取链接,将链接放进变量,对变量进行文本处理,再存进新的变量」,也能得到一个可用的链接。这个方法不会用到鼠标键盘,所以不会受到误触的影响,也就更稳定。这些步骤同样可以在一个组合动作中实现,下面看看具体是怎么做的。
第一步,首先让 Quicker 知道我想处理哪一段文本。
可以发现,第一步通常是一个动作的触发方式,比如处理文本,就要让 Quicker 知道处理「哪个文本」;处理图片,就要让 Quicker 知道处理「哪个图片」。我们最常用的方式就是获取选中的文本或是获取剪贴板文本步骤。
第二步,把这段文本存进一个变量。
想对这段文本进一步处理,就需要让文本放进变量。这里用默认提供的 context 变量来存储美区 App Store 链接。操作时,在「输出 - 内容」中选择 context,或者输入 $${context}
把文本放进去。
Tips:在 Quicker 中,如果你想在文本框中调用一个变量,就必须在开头加上 $$
符号,然后用{context}
的形式调用特定的变量。如果你不想记这些,在最右侧的 ... 中可以用鼠标手动添加变量,这个步骤会自动完成。
第三步,将链接中的 /us/ 替换为国区的 /cn/。
这里使用的步骤是替换文本。我们把结果输出到一个新的变量 new_context
中,现在的 new_context
变量中就是国区链接了。
第四步,最后将 new_context 变量放进剪贴板。
这一步用文本或图片写入剪贴板就可以做到。将 new_context
的值输入到剪贴板中。
最后仍然在每个步骤之间加入等待时间 100ms来确保动作可以正常运行。你也可以加上一个消息提示步骤,告诉自己链接已经完成转换了。
这样一来,只要选中美区链接,再触发这个动作,链接就会被自动转换为国区链接。
这个动作中用到了变量和变量的处理,Quicker 也支持提取 JSON 内容、正则提取、合并拆分文本、字数统计等多种文本处理方式。思路大致相仿,先将文本放进变量,再进行统一处理,最后把需要的值输出到另一个变量使用。
修改和调试组合动作
编写动作的过程中必然不是一帆风顺的,可能会因为变量类型、数据溢出、操作过快等问题出现各种各样的 Bug。有时候动作能够运行,但是和你期望的结果有差距,也算是出现了 Bug。
那么如何才能修改和调试动作,解决这些 Bug 呢?
- 二分法,如果无法找到引发 Bug 的确切位置,首先选中一半步骤「右键 - 禁用」,查看能否运行,逐渐缩小范围直到找到问题。
- 打断点,在某个可能出问题的地方「右键 - 禁用」;将可能出现问题的变量换成固定的值;在变量处理完毕后弹出一个含有变量数值的窗口,检查是否有误。这些都是常用的打断点方式。
这两种方法其实也是调试程序的常规思路,而 Quicker 还有一个优势,那就是自带一个开源分享库。如果在编写过程中遇到问题,你也可以从共享库中获取一些类似的动作,看看他们是怎么处理同类问题的。
很多情况下,一些看似很复杂的动作其实是大量简单动作的组合;也有一些动作也可以不依赖于复杂的步骤直接用代码实现功能。
比如之前在奏折中推荐的两个动作就是两种不同的风格:@乐坛话事人 的 听听音乐盒 动作通过判断、HTTP 请求、正则提取等操作实现了一个小型的音乐客户端,其中可能有上百个步骤层层嵌套,出现 Bug 可以通过批量禁用步骤组来排查问题。而 @KBC 的 系统工具箱 中提供了 21 种系统工具的打开方式,在编辑器中查看时却只有简单的两个动作,简化到了极致,不容易产生 Bug。两者都是 Quicker 动作制作中的佼佼者,多多学习这些成功的动作,Bug 自然也会减少。
Quicker 则用可视化编程的方式,把用户常用的操作整合成特定的步骤,合理的组合起来,就能实现复杂的效果。让用户避免使用纯代码编写动作,有效地降低了使用门槛。
分享组合动作
在完成之后,如果你觉得这个动作有普适性,希望分享给其他人。你可以在主面板的动作上单击,填写动作的相关信息、选择分类,就可以分享出来得到动作链接,分享给其他人。如果选中「发布到共享库」,则需要经过审核才能公开分享。
如果想让更多人用到你做的动作,可以添加「用户选择」「提示消息」等交互、提示步骤,让使用者明白你的步骤做了哪些事情,或是提供一些选项留给对方选择,将动作的触发方式和环境要求在备注中写明,避免使用者产生困扰。最后还可以给它加上一个图标、标题,这样就能将一个动作做的更易用更精致。
在动作分享方面,Quicker 保护了原作者的权利。如果在别人的动作上修改后二次分享,则会显示「此动作从已分享的动作创建,点击查看来源信息」。
高级用法:外部启动 Quicker 动作
Quicker 的厉害之处还不止于此,Quicker 的动作不仅仅是一个格子、一个按钮、一个悬浮窗。动作还可以借助 QuickerStarter 实现在外部启动动作,这就极大地丰富了它的适用范围。
比如我习惯在每晚 8 点写日记,我做了一个日记模板动作。但 Quicker 自身无法实现定时启动,该怎么办呢?
这时就需要用到每个动作独一无二的 URI(统一资源标识符)和 Quicker 的 QuickerStarter.exe,配合Windows 自带的计划任务功能实现。
- 在动作上「右键 - 信息 - 复制动作 URI」。
- 打开「开始菜单 - Windows 管理工具 - 任务计划程序」,选择「创建基本任务」。
- 依次设置名称、运行频率和时间,在操作这一步中选择「启动程序」,在程序和参数部分,分别填入以下信息:
- 程序或脚本:QuickerStarter 的路径。例如
C:\Program Files\Quicker\QuickerStarter.exe
。 - 添加参数:以
runaction:
为开头的动作 URI。例如runaction:d21531a6-a46d-43f8-94ee-a7ef992f4dcd
。
完成之后,就能让日记模板这个动作每晚 8 点实现自动执行了。
Quicker 动作的外部使用方法还不止这一个。比如 @zzzzls 的快捷启动动作,可以让某个动作和某个键盘快捷键绑定。又比如将动作 URI quicker:runaction:ID
作为快捷方式直接打开,或是在 AutoHotkey、VBA 中使用等。官方教程中提到了这些方法,具体的格式可以参考这篇《从外部启动 Quicker 动作》。
官方教程:更系统的动作教程
目前 Quicker 提供了 76 个步骤模块,已经可以实现非常多的操作了。由于篇幅所限,本文无法对 Quicker 中的每一个动作步骤都进行详细介绍。所以本文更偏重于带领大家了解了整个应用的使用方式,从简单上手到能够做出自己的组合动作,再到修改、调试、分享、外部启动。
好在 Quicker 有一群非常可爱的用户,开发者 @崔亮 和 Quicker 用户 @杨晴、@WilsonXuwx、@Marcus、@光量子 等人共同完成了一份 Quicker 官方教程。在他们的努力下,官方教程正在逐步完善中,一些比较复杂、需要说明的步骤模块也有了对应的介绍。
如果你对动作的某个功能感到困惑,可以通过这份官方教程详细学习使用方法。
总结:对 Windows 效率工具的看法
Windows 的自动操作软件、效率工具其实并不少。
如果你会一点 AutoHotkey、AutoIt、批处理的语法,就能编写出属于自己的自动化动作,用于自动执行重复性的任务。在脚本语言之外,按键精灵类的键鼠模拟软件也能在 Windows 上实现自动化操作,它内置的键鼠录制编辑器,使用起来相比编写脚本要简单许多。
但在实际使用时,两者都有一些缺点,脚本语言使用起来都需要有一定的代码基础,遇到一些复杂的需求时,无法保证一次编写完成,可能要花很长的时间修改调试,这很容易劝退感兴趣但没有基础的用户。键鼠模拟工具则由于键鼠定位的不确定性,精准动作的运行成功率堪忧,因此很少被用作办公辅助工具,而被用在精度要求不那么高的游戏外挂制作上。这两种自动化的方式各有利弊,一个门槛较高,一个成功率堪忧。
我认为,一款效率工具的主要任务就是让用户尽可能简单地完成复杂操作,而不是把大量时间放在学习如何使用效率工具本身上。Quicker 就做到了这一点,而且做得很好,Quicker 的学习曲线不同于脚本语言,它是先易后难的,不需要用户有太多的代码基础就能制作出想要的动作,哪怕完全不想动手也能在共享库中找到相应的动作,但是真正想做出优质的动作仍然需要深入学习。这种设计 兼顾了轻度用户和重度玩家、简单功能和复杂动作。
同时,Quicker 的设计思路非常先进,在早期版本就加入了可视化编程、多面板设计、公开共享库……这些元素在 Shortcuts 上也有明显的表现。在让每个人能够制作出属于自己的动作的同时,也有着便于操作的面板、便于分享的共享库、便于理解的操作逻辑。而且 Quicker 目前提供免费使用,未来的收费策略可能会根据动作分享数量,进行费用上的减免。以此来鼓励用户贡献更多的动作。
可以说 Quicker 是博采众长,通过可视化编程的方式,降低了脚本编写的门槛,同时提供了许多现成的动作模组,显著提高了运行成功率。 是一款相当优秀的效率软件。
你可以通过 Quicker 官网 下载使用。
注1:由于 Quicker 的版本更替很快,目前官网上能够下载到的版本是 0.11.9 版本,0.12.0 的内测版中将「动作目录」移除,用「面板翻页」代替。文中使用的版本均为 0.12.0 内测版,在面板管理、动作目录方面可能与目前版本有细小差别。
注2:并未确定,详见 关于Quicker收费方式的考虑
注3:Quicker 为了判断 Ctrl、ESC、CapsLock 等按键是否会被按下,会无法避免用到键盘钩子(HOOK),安全软件可能会因此弹出安全提示。Quicker 承诺不会监听和记录普通按键输入。
参考资料