最新消息:本站技术交流 QQ 群:28124927

AppleScript 快速入门

iOS/MacOSX/移动安全 exchen 17018浏览 0评论

AppleScript 快速入门

AppleScript 顾名思义是苹果开发的一套脚本语言,利用 AppleScript 在 macOS 系统上可以对其他程序进行操作,点击按钮、发送消息、模拟自动化执行功能,比如可以打开浏览器,清空回收站等等一些操作,是一个非常有意思的脚本。说好了要快速入门,下面我们开始快速学习了解它吧。

一、让其他程序执行任务

在 macOS 上有一个应用叫脚本编辑器,通过 Launchpad 可以搜索到,打开脚本编辑器之后,可以看到支持编写和解析 AppleScript 和 JavaScript 两种脚本,如下图所示:

AppleScript 的语法和平时的英语语法很类似,你想让哪个程序执行操作,就 tell 它,比如你想让 Finder 清空回收站那就这样写:

在脚本编辑器上点击运行按钮就可以看到回收站的内容被清空了,或者按快捷键 Command + R 也能运行,运行之前记得回收站得有东西,不然可能会执行失败。

如果你想让系统说话,可以这样写:

哈哈,记得把电脑的声音打开,是不是听到说话了?不仅支持英文和中文,其他国家语言,像德语、荷兰语笔者试过,同样也可以。

如果你想让浏览器打开 URL,可以这样写:

看看 Chrmoe 浏览器是不是打开了你指定的 URL 了?有意思吧?

上面的测试代码都是在脚本编辑器里运行的,如何脱离脚本编辑器,直接在系统上运行呢?我们可以保存或导出脚本,点击文件菜单 -> 存储,可以看到支持的格式有四种,如图所示:

保存为脚本类型,然后通过 osascript 来执行脚本,如下:

如果保存为应用程序类型,就是一个 .app 的包,直接双击打开就能运行。

二、数据类型

AppleScript 的数据类型比较简单,一般常用的有 number、string、list、record,也就是数字类型、字符串类型、列表类型、字典类型。

数字类型的赋值和使用如下:

字符串类型的赋值和使用如下:

字符串与数字的转换方法如下:

列表类型其实就是相当于数组,定义和操作列表类型的方法如下:

字典类型的定义和操作方法如下:

三、条件语句

既然是脚本语言,当然不能少了 if 和 else 语句,使用方法如下:

通过 contains 方法来进行字符串的比较判断:

四、循环

循环的写法有好几种,不过都是使用 repeat … end repeat,比如循环 100 次可以这样写:

类似于 for 循环,就这样写:

类似于 while 循环,可以这样写:

五、函数

如果某些功能有重用性,应该要写成函数,AppleScript 也支持定义函数,定义和使用方法如下:

函数当然会有返回值,通过 return 返回值:

另外函数可能还会带参数,带参数的方法使用如下:

函数有可能会带多个参数,使用方法如下:

六、用户交互对话框

在前面我们使用过 display dialog 弹出对话框,如果要指定标题通过 with title 关键字,代码如下:

指定按钮的内容,可以通过 buttons {"No", "Yes"},按钮个数最多三个,代码如下:

也可以通过 default button 设置默认选择的按钮,代码如下:

还可以指定对话框的图标,icon 图标可以指定 note/stop/caution 类型,或者指向文件路径,代码如下:

对话框一般是用于和用户进行交互,通过 button returned 可以获取用户点击了哪个按钮,然后进行相应用操作,代码如下:

对话框中也可以带输入框,让用户进行输入内容,代码如下:

带输入框的对话框的效果如下图:

输入内容之后,通过 text returned 来获取输入框的内容:

七、使用词典

在第一节我们知道了如何在其他程序中执行任务,比如让浏览器打开 URL、清空回收站,如果还想执行其他额外更多的功能怎么办?去哪儿查相应的方法名称?

可以通过词典来找相应的方法名称,将应用直接拖到 Dock 上的脚本编辑器图标,然后就会显示扩展的词典,在这里可以查看该应用支持的相应方法名称说明,比如 Chrome 的词典如下图所示:

有些应用没有功能扩展的词典,就会提示打开词典失败,如下图所示:

八、操作其他程序的界面

本小节我们来试一下操作其他程序来实现简单的自动化,打开计算器,使用 entire contents 显示出 UI 信息,代码如下:

返回 UI 信息如下:

比如我们关心的是按钮 9,信息比较多,一时看不出我们所关心的按钮,可以通过 Xcode 自带的工具 Accessibility Inspector 查看 UI 信息,打开 Xcode 菜单,在 Open Developer Tool 里可以找到它,打开之后点击捕获按钮,找到我们关心的按钮,效果如下图所示:

在 Accessibility Inspector 界面往下拉,可以看到按钮 9 是在第二组的第四个,如图所示:

从返回的 UI 信息里可以找到按钮信息:

编写代码实现点击按钮:

如果想点击菜单,在 UI 返回信息里你关心的菜单,编写代码如下:

执行之后,就相当于点击了 "关于计算器" 菜单,如下图所示:

九、运行参数

在第一节,我们知道通过 /usr/bin/osascript 能够执行脚本,如果脚本在启动的时候需要参数怎么办?通过 on run 定义好参数,代码如下:

然后在命令行执行的时候,后面跟参数执行就行了,命令如下:

转载请注明:exchen's blog » AppleScript 快速入门

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址