AppleScript学习笔记(一)初识AppleScript
关于AppleScript
说到AppleScript,可能涉及到三个含义:
1.AppleScript语言:就是苹果脚本的语言,用来编写运行于Mac系统的脚本。
2.AppleScript脚本:就是使用AppleScript语言编写的一系列指令。以后简称脚本。
3.AppleScript脚本解释程序:用于解释和执行AppleScript脚本中指令的程序。是Mac系统的原生程序和重要组成部分。下面简称AppleScript脚本程序。
AppleScript Editor
要编写AppleScript脚本,当然就需要编辑工具了,首先打开AppleScript编辑器:
貌似可以使用Xcode编写Cocoa - AppleScript Application,这个暂时还没尝试。我们先从AppleScript编辑器开始。
界面很简单,主要分为工具栏、编辑区和运行结果区。编辑区用来编写脚本,工具栏用来编译和运行脚本等,运行结果区呈现运行结果,这个不用多说了吧。
say和beep
首先来玩两件很好玩的事:让Mac发音和说话。
在编辑区输入以下脚本:
say "How are you?" using "Zarvox"
say "Fine, thank you." using "Victoria"
say "Ha Ha"
beep
点击工具栏的编译(或Command + K),可以看到脚本变了颜色,具体颜色的含义,可以在偏好设置中查看并设置:
接着点击运行(Command + R运行,Command + .停止运行)。可以看到运行结果区的回复栏中的显示如下:
更加好玩的是Mac系统在自然自语了,还有最后的一声咚。
下面来解释下脚本和运行结果的意思:
say "说话的内容" using "指定人的嗓音"
这句脚本的意思就是让Mac系统按照指定人的嗓音说出我们指定的说话内容。当然using "..."是可以缺省的。
beep 发声次数
这句脚本的意思是让Mac系统发出咚的声音,发声次数决定了咚出现的次数,例如beep 2那么Mac会咚两次。发声次数缺省为1。
在运行时回复输出的意思是:
tell表明将以上say和beep的任务交付给current application去完成,也就是AppleScript脚本程序。
tell模块
同样道理,我们可以用tell模块将特定的任务交付给Mac中特定的程序去执行。
tell模块的语法为:
tell application "Application Name"
do your job here
end tell
例如我们想让Finder程序清空垃圾篓然后打开磁盘,可以这样写:
tell application "Finder"empty the trashbeepopen the startup disk
end tell
注意"Finder"的双引号必不可少。
回复输出为:
tell application "Finder"empty trash--> current application--> error number 0beep--> error number -10004
end tell
tell current applicationbeep
end tell
tell application "Finder"open startup disk
end tell
可以看到empty the trash任务是交给Finder程序去完成的,而beep任务是交给current application程序去完成,接下来的open the startup disk任务还是交回给Finder程序完成。
在tell模块中的任意位置可以插入beep,say等由current application程序解释执行的语句。
注意,交付给某个程序执行的语句必须在tell模块之内。
错误写法:
tell application "Finder"empty the trashbeep
end tell
open the startup disk
编译时可以看到没有报错,运行起来看看:
运行结果区的回复输出如下:
tell application "Finder"empty trash--> current application--> error number 0beep--> error number -10004
end tell
tell current applicationbeep
end tell
tell application "AppleScript Editor"open startup disk--> missing value
end tell
结果:
missing value
boot应该由Finder程序去打开,但是由于超出了tell applicaiton "Finder"模块,所以给语句将交由AppleScript Editor程序解释执行,很可惜,AppleScript编辑器无法打开boot,报错。
AppleScript Editor的小技巧
1.使用esc键呼出代码补全菜单
在写te时按下esc键,此时出现代码补全菜单:
2.在编辑区点击右键(或按住control键再点击左键)呼出上下文菜单
在上下文菜单中我们可以将AppleScript语句快速地插入到编辑区中,例如:
也可以将一段语句插入到Tell语句块中,方法是先选中这段语句,再插入到Tell Blocks中:
3.编辑程序的补全和修正功能
你可以输入:
tell app "Finder"
end
在编译后将被替换为:
tell application "Finder"
end tell
在编写AppleScript脚本时,是不区分大小写的,当然在编译过后也会被替换成正确的大小写形式。
这些小技巧都非常有利于快速编写脚本。
保存脚本
写好了程序,当然是保存了。可以在菜单中点击文件 —— 存储(或按快捷键Command + S)。
在保存时有多种文件格式:
保存为脚本格式
如果保存为脚本,那么下次打开文件时还是用AppleScript编辑程序来打开。文件后缀为.scpt,桌面图标如下:
保存为应用程序格式
如果保存为应用程序,那么最好保留个脚本的copy,否则将不能用AppleScript Editor来打开编辑。
保存时的对话框如下:
如果选中“显示启动屏幕”,那么以后运行程序前会弹出一个对话框提示:
如果选中“运行处理程序后保持打开”选项,那么在程序运行完毕后会停留在Dock中。
保存的图标和脚本格式不同。文件后缀为.app,桌面图标如下(少了个纸张背景):
后记:
事实上,在保存为应用程序后,还是可以修改其脚本内容的。方法如下:
1.右击应用程序,点击显示包内容。
2.打开Contents —— Resources —— Scripts —— main.scpt(该文件可以用AppleScriptEditor打开并编辑其代码),如下:
3.修改其代码可以修改应用程序的功能。
第一篇学习笔记先到这里,后面会继续更新。
更多详细内容请参考《AppleScript for Absolute Starters》一书(中文名为《苹果脚本跟我学》)。
AppleScript学习笔记(一)初识AppleScript相关推荐
- Hadoop学习笔记—4.初识MapReduce
一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个 编程模型 ,用以进行大数据量的计算.对于大 数据量的计算,通常采用的处理手法就是并行计算.但对许多开 ...
- ASM学习笔记1 - 初识ClassVistor ——以ClassReader的应用为例
ASM学习笔记1 - 初识ClassVistor --以ClassReader的应用为例 1 ASM简介 什么是ASM? Java操纵类字节码的工具.是一个jar包. 如何使用? ASM提供两类API ...
- C语言学习笔记-P1 初识C语言(2)
C语言学习笔记-P1 初识C语言(2) C语言学习笔记-P1 初识C语言(2) 一.常量 1.字面常量 2.const修饰的常变量 3.#define定义的标识符常量 3.枚举常量 二.字符串+转义字 ...
- C语言学习笔记-P1 初识C语言(1)
C语言学习笔记-P1 初识C语言(1) P1 初识C语言(1) 一.什么是C语言 1.定义 2.发展 二.第一个C语言程序 Hello World 三.数据类型 四.变量,常量 未完待续!!! P1 ...
- xilinx srio ip学习笔记之初识srio
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 xilinx srio ip学习笔记之初识srio 前言 IP 设置 总结 前言 因为工作原因,需要对rapidio 的协议进行了解, ...
- 吴恩达《机器学习》学习笔记一——初识机器学习
吴恩达<机器学习>学习笔记一 一. 什么是机器学习? 二.监督学习 三.无监督学习 初识机器学习 这是个人学习吴恩达<机器学习>课程的一些笔记,供自己和大家学习提升.第一篇内容 ...
- 【人工智能学习笔记】初识人工智能
文章目录 前言 一.人工智能的定义 二.人工智能的应用 1.计算机视觉技术 2.自然语言处理 3.其他具体应用举例 三.AI算法工程师主要工作流程 四.人工智能的基本概念 机器学习 有监督学习 VS ...
- C语言学习笔记之初识
初识C语言 一.计算机和编程语言 1.初学者在学习c的时候,不仅会为语言本身的复杂而困惑,而且对其编程工具的选择同样困扰. 因为c语言出现的时间很早,而且在这么多年中也没有一个主要的组织对其编程工具进 ...
- C语言鹏哥学习笔记(初识)
目录 初识 创建 文件 第一个程序 ----printf % ----sizeof() 单位 数据类型 浮点型float 变量.常量 变量的定义 局部变量.全局变量 ----scanf()输入函数 - ...
最新文章
- jquery实现点击页面其他地方隐藏指定元素
- 综述系列 | 多标签学习的新趋势
- 人工脑连接体:类脑人工智能的奇点时刻来临
- windows7安dns服务器_在Windows 7 上安装DNS服务器bind9方法详解
- Scala 位运算及代码块
- OpenCASCADE:可视化之基础概念
- Linux 命令之 wget -- 下载文件工具
- 使用OSHI 检索系统信息,超牛逼、超级秀、超级巴适!!快来看看吧!不然你会后悔的!!666
- Codeforces Round #326 (Div. 2) B. Pasha and Phone C. Duff and Weight Lifting
- 【Java】Java 对象头 真的是 32位 吗?
- SAP License:SAP All-in-One产品特点
- JSONP和CORS两种跨域方式的介绍和方案实例
- Activity/Fragment最强生命周期总结
- javascript英语单词音节拆分_英语单词音节的划分法
- 利用adb卸载手机预装软件(系统软件)
- 手机投影到deepin
- vue 封装图片预览组件
- 中国计算机学会推荐中文科技期刊目录(2019年)
- Autofac实现依赖注入
- CSS translation