前言

不知道你有没有设想过,躺在沙发上就能让卧室的电脑帮你下载想看的电影、说一句话就能让电脑打开想玩的游戏……这些看似「科幻」的操作,在智能家庭逐渐普及的当下,显然已经不是什么难事了。

不过,依赖第三方解决方案往往很难满足自身的所有需求。以我自己为例,我的 PC 作为家用游戏机,一直连接在电视上。想舒服的进行遥控,要么使用无线键鼠,要么使用远程桌面,终归费时费力。无意瞄到桌面摆放的 HomePod,开始思考能不能使用语音去进行遥控。呀,用语音进行控制 Windows 电脑,好像是个很酷的事情耶~

想到就做,但想法是美好的,事实是残酷的。就这样一个简单的需求,局限于设备平台以及系统权限,需要付出大量心血才能实现。愿意折腾的玩家或许会享受这个过程,但作为普通人的我们,就想简单快速的满足自己,那有没有好方案呢?

有的,而且很简单。下面请允许我将这个「魔法」剖析给你,助你成为家里的魔术师🪄

工具介绍

  • Quicker:Windows 平台上的效率工具,亮点在于用户可以通过可视化编程的方式编写属于自己的动作;
  • 快捷指令:Apple 生态中系统级效率「神器」;
  • Aria2c:跨平台的一款轻量级命令行下载工具。

本文将以远程调用 Aria2c 下载,作为案例分享,发掘 Windows 远程自动化的潜力。

其中 Quicker 作为灵魂,实现动作组合、远程调用等功能。快捷指令作为触发器,实现自动化操作。

关于Aria2c,详细参考链接置于文章底部,简要介绍一下,在本文中 Aria2c 通过传入下载链接,进行高速下载。

:Quicker 免费版有调用限制,如果想拥有更好的服务,建议购买专业版。

效果一览

作为在我派的保留节目,不玩玩派派怎么行?为了实现远程打开游戏、电影的操作,于是我先做了一个「一键直达少数派」的 Demo。只需要对 Siri 说「Hi,Siri 打开少数派」,电脑便会自动通过默认浏览器打开少数派首页。

完成了「打开软件」这个基础操作后,觉得大材小用了,这么简单的操作简直是对不起 Quicker 提供的接口。

故从自己的需求出发,由于我自己没有做内网穿透,上班的时候想用家中的电脑下载一些大文件就无从谈起。回了家等下载的过程总是心痒痒得很。这样的事情,之前只能忍了,但是现在有了远程的法子,自然是可以玩玩的,于是我又写了一个「远程下载文件」的动作。

现在只需要在 iPhone 上复制一个链接,黏贴到快捷指令中,电脑便会自动将链接文件下载到指定位置。在这个自动化中,下载地址将会被 Quicker 接收,再调用 Aria2c 进行下载,在下载完成后使用 Bark 通知到手机。

你需要做的,仅仅只是复制,黏贴。当然,你也可以直接读取剪贴板,或是 Share Sheet 分享,也可以实现本操作。

学会这个魔法 🪄

光说不练怎么行。不然做个酷酷的事情,把大家的兴趣勾起来了就跑,想想也是挺刺激的,不过为了防止被打,以下将以远程调用 Aria2c 下载为例,抛砖引玉,让工具为你服务。

本文思路来自于Quicker 远程调用文档

Quicker 配置远程连接

获取登录用户的验证码

想实现远程控制 Quicker,我们首先要获取登陆用户的验证码。你可以将其理解为你的身份识别码,你的 Quicker 只会对你发出的指令响应。

在网页端登陆 Quicker 并打开 此链接。页面右侧将会展示你的「推送验证码」。

该验证码将用于之后所有请求的校验,以确保你是你。不建议将其交予任何人,如若真意外泄露,你也可以点击「随机生成」按钮重置。这时不要忘记点击「保存」哟。

鉴于后续步骤还需频繁使用,建议暂时将它保存到其他地方。

打开推送服务

获取推送验证码之后,请回到 Quicker 主程序中进行操作。或许是鉴于安全性考量,作者没有默认允许远程调用。我们手动将其打开,如下方贴图左侧,先点击 Quicker 右上角用户头像按钮,再展开「推送服务」菜单。会看到目前显示的是未开启状态,点击「连接到推送服务」即可将其打开。

当开启后,状态如右图所示,此时你的远程调用条件就设置完毕了。之后我们可以开始配置被调用的动作啦。

Quicker 动作配置

本文涉及的所有 Quicker 地址均贴在文末,根据内部注释配置后即可使用。

新建动作

在 Quicker 主面板中找到一个空位,鼠标右键点击后展开选项卡,你可根据需求选择相应的动作。例如打开少数派网页,你可以选择「打开网址」动作。或者打开 Steam 程序,请选择「启动软件」动作。在这里,为了实现复杂动作,我们选择「新建组合动作」。

编辑 Quicker 动作

区域描述

  1. 变量区域:在本案例中,主要为「程序所在位置」与「下载文件夹」所在路径。
  2. 程序步骤区:你可以从三号区域中拖动动作添加于此,该区域为 Quicker 的精华,可视化的鼎鼎大名绝离不开该区域的优质展示。「注:在指定动作上双击,即可打开编辑」
  3. 动作区域:Quicker 提供的动作将于此展示。
  4. 动作集区域:Quicker 根据不同功能点,将动作进行分组,你可以在此选择不同分组,动作区域会根据你选择的动作集切换不同的内容。

动作讲解

1. 配置 Aria2c 程序所在位置,将其输出到 programPath变量中。

例如在我的电脑里,Aria2c 程序保存在桌面的某个路径中,复制出完整路径,黏贴到输入框中即可,需要注意的是,请确保该路径下包含 aria2c.exe 程序。已保证调用时候可以正确的找寻到 Aria2c 程序。

在填写完输入值后,在输出部分,将其输出到变量programPath 中。以方便后期调用。

「该步骤是为了方便未配置环境变量的用户,如果你明白环境变量的概念,该步骤可以忽略,但你也需要对应的调整一下之后命令行调用部分的命令」。

2. 配置下载目录所在位置,将其输出到 downloadPath变量中。

你需要将下载路径的全路径黏贴到输入中,再输出到 downloadPath中。这与第一步相似,也是为了方便后期调用。

3. 配置 Windows 提醒

如果远程调用,这东西用途不大😂毕竟那时候我们不在电脑跟前,看不到提醒

但是谁能拒绝一个程序正确的 run 起来之后那成就感呢,这简直就是沙漠中的绿洲。它会告诉你,你现在在做的事情是对的,你的程序现在正在根据你的需求在运行~

所以哪怕浪费了一点篇幅我也要写出来,只为那一抹你懂我懂的会心一笑。

4. 调用 CMD 命令,执行下载

$$aria2c.exe "{quicker_in_param}" -d {downloadPath}

这句话的完整含义为,使用 aria2c 程序,下载指定的链接,并保存到指定的目录中。

解释如下:

  • $$ 为 Quicker 指定的语法。在调用变量时候,在开头写上$$,Quicker 会将变量内容替换到命令中。
  • 例如此处,我们使用downloadPath作为下载路径,使用{}进行包裹,在运行的时候,该变量将被赋值为下载文件夹所在路径。
  • quicker_in_param参数为 URL 请求中携带的 data字段,在此处意味着下载链接。「极为重要,请注意拼写正确,否则你将无法接收到传入的参数」
  • 脚本类型请选择「命令行CMD」,你在调试的时候可以选择「完成后关闭命令窗口」这个选项,调试更为直观。

同时,请记得配置「工作目录」为程序所在位置,此处调用ProgramPath即可。

如果你清楚如何配置环境变量,「工作目录」就无需配置了。

5. 通过 Bark 通知手机下载完毕

请于 Bark App 中复制你的请求地址,稍作修改。

此处多啰嗦两句,Quicker 自身支持调用结果返回,在你远程调用之后,会返回一个调用结果。但其最大等待时间仅为 5 分钟。而下载通常是一个长耗时的操作,故更换思路,改让 Windows 去通知手机。

同时也可以避免快捷指令在那边傻等(´Д` ),影响后续手机的使用。

复制动作 ID

如图,在你编辑的动作保存后,回到主页面。在指定动作上点击鼠标右键,在弹出的菜单内找到「复制动作 ID 」。得到的 ID 大致如此「b7821721-aaaa-xxxx-yyyy-008d8c1ffde6」,该 ID 将作为该动作的唯一标识码,使该动作可以准确的被调用到。

重新编辑动作不影响其 ID,你可以放心的进行修改,修改后也可以通过原来的 ID 进行调用,有效减少我们调试时候的操作。

至此,Quicker 部分设置完毕。

快捷指令设置

配置基本参数

在文末提供的案例中,我详细的注释了每一个参数的由来,你可以直接将前文中得到的参数填写到对应的文本框内,即可实现快捷指令的基本配置。主要配置项为「推送验证码」、「动作 ID 」、「Quicker 的登录邮箱」、「URL中的相关参数」。其中 URL 请求参数配置略微复杂,且千人千面,根据动作不同均有不同,故请根据文档进行相应配置。

你可以暂时根据下方截图去了解需要的参数,详细配置请下载文末的示例。

URL 请求头配置详解

下方图片为 Quicker 文档中贴出的参数说明,看上去有些复杂。不过对于我们这个示例来说,大部分用不到,为了简化操作说明,此处单独拎出几个来讲讲。

  • toUser(你的邮箱)code(你的推送验证码),两个参数必选,此处不赘述。
  • operation 请配置为 action,即告诉 Quicker ,该次访问将调用一个指定的动作,以做好接收参数的准备。
  • data 为下载链接,作为参数传到 Quicker 中,将由 quicker_in_param 变量接收。
  • action 请配置为 Quicker 设置中最后一步复制得到的动作 ID,以确保 Quicker 可以找到对应的动作。

笔者自己配置好的参数如下图,仅供参考。其中链接来自于快捷指令最上方的「请求输入」组件,在调用的时候,我将黏贴一个地址进去,该地址将会被传递到 Quicker 中,由 Aria2c 进行调用。从而实现下载需求。

测试

理论上,你现在可以执行测试了。如果遇到错误,Quicker 和快捷指令都会以一个友好的方式对你进行提示,你可以根据提示进行修改,以达到你期望的效果。

Debug 的过程是「痛苦」的,结局是美好的。就像一句话说的那样「成就感真的是一个折腾人的小妖精,得到后就无法自拔(´・ω・`)」——我编的

尾巴

最后,总结一下(・◇・)/~~~

文中从 Quicker 设置项开始讲起,贯穿了由快捷指令调取一个复杂动作的全流程,实现了远程调用下载这种原先需要内网穿透的才能实现的复杂操作。而这,也只是笔者自己不成熟的智能家庭使用场景中的一个小景,相信少数派的各位大神们会有比这个更好的想法,让工具更好的服务于我们。

毕竟,懒惰才是第一生产力呀。

希望这篇冗长的文章可以给各位朋友带来满足。祝好!

本文参考链接

  1. Quicker官方提供的快捷指令
  2. 笔者编辑的快捷指令模板
  3. 远程调用 Aria2c 的快捷指令
  4. 调用Aria2c下载 - 动作信息 - Quicker
  5. Aria2:windows上的详细使用方法 - EvansT's Blog
  6. #Quicker - 少数派 (sspai.com)
  7. Quicker -- 一种全新的 Windows 效率神器 - 少数派 (sspai.com)
  8. 在 Windows 里实现 6 个不为人知的文件操作 - 少数派

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀