【使用AppleScript模拟定时点击鼠标操作】

8,572 阅读3分钟

需求

最近,为了订上瑜伽课,媳妇儿每次都要早上6:30就起床,订好课程(6:30开始接受预定)再继续睡,不然到7点课程就被订满了。要命的是,为了6:30起床,她还订了闹钟,导致我的睡眠也受到影响。

左思右想,这种预约操作只需在某个时刻点击一下页面的预约按钮就可以了,完全可以用自动化的方式做到啊!

于是就有了这篇文章,请各位看官继续往下看。

思路

第一反应是使用按键精灵,不过因为用的mac,而按键精灵貌似只适配了Windows,于是作罢。

那么mac上类似按键精灵的软件肯定有的吧,于是Google之,发现mac自身就有这样的工具可用了。一个叫做:脚本编辑器(AppleScript),另一个叫做:自动操作(automator)。具体的作用和使用方法大家可以自行查询。

那么这里就有两个问题有待解决:

  1. 如何点击屏幕上的某个坐标点(预约按钮所在)
  2. 如何在某个时间点,也就是6:31触发这个点击操作(6:31晚一分钟是为了防止由于系统时间的误差导致后台并未刷新预约可用)

实现

1、写脚本

delay 3
tell application "System Events"
	click at {990, 440}
end tell

大概的意思就是:等待3s后,在屏幕的(990,440)坐标点上点击一下。

有了脚本,还需要设置在某个时间点上执行它。

当然我们也可以在脚本中做轮询,比较当前时间是否到了目标时间,当到了目标时间时,执行点击操作。

然而这就意味着脚本需要一直跑到目标时间,而按照晚上11点睡觉,那么到早上6:30需要跑7个半小时,耗电不说,对电脑也是不小的损耗。

那么,有没有其他办法可以让脚本能在目标时间跑呢?

答案是,Google一下,你就知道了~

HOW TO: Trigger an AppleScript at specific date and time

2、添加到日历中,到了时间自动执行脚本

按照上面的流程

  1. 将脚本保存到桌面

脚本编辑器-保存

  1. 将脚本导出为 app

脚本编辑器-文件-导出

  1. 在日历中添加日程提醒
  • 双击添加日程

  • 选择提醒类型为自定,并设置相关参数

接下来,测试一下。修改时间为当前时间之后的2分钟,然后等待执行。

Nice!OK了👏 (这里只是测试了预约的第一步,后面的确认预约没有测试,因为类似的只需修改坐标即可)

终于,可以睡个安稳觉了~~~

以上,感谢阅读,希望对你有所帮助。

参考

How do I make the mouse click at current location using AppleScript?

HOW TO: Trigger an AppleScript at specific date and time