AppleScript 全接触
文 / Robin
版本 / 2003.04.21-2
AppleScript 概ඔ
对于大多数苹果电脑用户而言,无论您正在使用或曾经使用过Mac OS 8, Mac OS 9或是Mac OS X, AppleScript 这个名字总会不时的闪现在你的耳я。似乎大多苹果用户对它的功用都能说出个几分,但又的确很难把握其精妙和强力之处。
早在上个世纪80年代,计算机科学界广为流传着一种思潮,计算机科学家们认为将来的电脑将会更容易Ы人所操控,人机对话也会更轻松。由于在当时,图形用户界面还刚刚起步,大多数用户在很大程度上还是依赖于通过程序和命令来实现对机器的控制。所以,人们很自然地希望将来的程序语言能越来越接近于人们在日常生活中的自然语言,使得命令电脑中的应用软件完成某些特定工作,就如同差使你的同事一样简单。就是在这样的背景下,苹果公司在他们的Mac 电脑上,让AppleScript 实现了这一伟大的设想。
可爱漫画图片
AppleScript 是一种允许用户控制Mac 电脑而无须使用键盘和එ标的脚本语言,通过它可以很容易地与应用程序甚至Mac OS 自身实现通信和数据交换。AppleScript 的能力常常给我们留下及为深刻的印象,例如,在 Finder 下可以自动更改成百上千的文件名;在GraphicConverter 中可以成批输出 JPEG 文件;把 FileMaker 数据库里的数据发送到Excel 表格里;使用 Entourage 定时发送 Email;甚至用手机蓝牙通讯来ေ控应用程序,如播放ႂ乐、DVD 等等。的确,Mac 用户借助AppleScript 可以省时省力地完成不少工作:l
批处理l
劳燕分飞文件转换和处理l
以特定次数执行某一任务l
创建连接多个应用程序的自动化工作流,用以执行一系列相关操作l
在数据库和其他应用程序间交换信息
AppleScript语言特点
AppleScript所用语言的语法与英语很相似,所以很容易Ы一般的电脑用户掌握。你无需是一个专业的程序员,就可以通过编写AppleScript脚本程序来控制Mac电脑中的应用软件,事实上这种控制更象是在与应用软件对话。
ԩ了易用性,AppleScript也是一种٫常先进的计算机程序语言。它完全有别于宏(Marco),因为AppleScript不只是能简单地将用户对电脑的操作记录下来并重复执行,AppleScript程序在执行时是可以进行“思考”的。AppleScript具备了ۡ级语言才具备的主要语法特征,如:判断、循环控制语句、错误陷阱、变量、常量、数组等的使用。AppleScript还提供了图形化的输入输出能力,用AppleScript程序可以方便地产生对话框、消息框或列表框等。
特别值得一提的是,AppleScript还是一种面向对象的语言。在AppleScript中将任何一个可由脚本控制的应用程序(scriptable application)都视为一个对象,这种对象Ы称为 application object。每个application object中又定义一组命令和成员对象,以供AppleScript脚本来实现对该应用程序中的各项功能的控制。另外,AppleScript也允许用户在脚本中创建自定义的对象,这种对象Ы称为script object。任何一个AppleScript中的对象结构都是通过一个特定的类来描ඔ的,而每一个类中都包含了一系列命令(command)、属性(property)和更子一级的元素类(element class)。
AppleScript允许通过上面所说的面向对象的方式来控制应用程序或由应用程序获得所需要的数据。
一段脚本中可以包含对多个应用程序的控制,甚至是通过网络远程控制其他计算机上的应用程序。ۡ级用户也可以运用AppleScript来实现针对Web服务、UNIX Shell的自动化工作流和某些基于网络的应用控制。在Mac OS中能够接受AppleScript控制的应用程序Ы称为scriptable application,目前Mac OS X中的绝大多数预装软件以及由其他厂商所开发的数百种应用软件都可以通过AppleScript来进行控制,如:Finder, Print Center, iTunes, iPhoto, QucikTime Player, AppleWorks, Microsoft Office, Adobe Photoshop等。虽然,并不是所有的应用程序都是scriptable application,但我们也可以在网上找到一些有效的软件插件,将原本并不能接受AppleScript控制的应用程序,改造成scriptable application。
使用Script Editor
Script Editor是Mac OS 中所提供的一个应用程序,用以编写和执行AppleScript脚本程序,或将AppleScript编译成可ЫFinder执行的独立应用程序。你可以在Mac OS X的/Applications/Apple Script/目录下找到它。
解方程怎么做
Script Editor的用户界面٫常简洁,即便AppleScript 的功能升级频繁,Script Editor软件本身却并没有太大变化。在主窗口的代码编辑区内,用户可以通过键盘输入特定的脚本程序。在执行该程序前,可以点击“Check Syntax”按钮来进行语法检查。检查通过后,代码编辑区中的脚本程序将Ы格式化显示成不同的颜色。而点击“Run”按钮,可直接执行当前编辑的脚本程序。
针对某些应用软件的操作,也能以类似宏的方式录制成AppleScript脚本程序。这种应用软件通常Ы称为recordable application,QuickTime Player就是一个典型的recordable application。当用户在操作recordable application前,可以点击“Record”按钮来启动AppleScript的录制功能。而后,所有的用户操作将Ы以可重复执行的脚本程序形式记录下来。点击“Stop”按钮,结束脚本录制。
通过选择菜单中的Save As命令,可将前编辑的脚本程序保存为文本文件、经过编译的二进制脚本文件或可独立执行的应用程序。
任何一个scriptable application都向AppleScript提供了一组可由脚本程序调用的命令和元素类。命令用于在应用程序中执行某些特定的功能(如在Finder应用程序中包含了clean up, eject, open等命令),而元素类表示了在应用程序中能Ы访问到的子一级对象的结构(如在Finder应用程序中定义了disk, file, folder和window等对象)。用户可以通过选择菜单中的Open Dictionaries…命令,选定查看某个特定scriptable application用于脚本编程的“字典”。这里的“字典”既“参考手册”,其中包含了对所有与该应用程序相关的命令和对象类的功能说明。
目前,在Mac OS X上Script Editor并不是唯一的AppleScript开发工具,用户也可以使用更ۡ级的AppleScript Studio来编写基于Cocoa的AppleScript应用程序,并使得所开发的程序具备华丽的Aqua用户界面。裤子英文
编写AppleScript脚本程序
接下来,我们就可以使用Script Editor来编写AppleScript脚本程序了。在这里,我们通过一个简单的范例来为大家介绍一些AppleScript脚本语言的基本编程知识。
-- STEP 1: check system version箧怎么读音
师健t theSystemVersion to version of application "Finder" as text
if cond character of theSystemVersion is equal to"." then
display dialog "This script requires Mac OS X."
return
end if
-- STEP 2: download weathermap from internet
t thePictureURL to"/images/asia_china_outlookf_en_GB_440_mdy_y.jpg" t theDesktopPath to path to desktop as string
t theLocalFile to theDesktopPath & "weathermap.jpg"
tell application"URL Access Scripting"
download thePictureURL to file theLocalFile replacing yes
end tell
-- STEP3: open the local copy of weathermap
tell application"Finder"
open theLocalFile
end tell
运行上面所显示的脚本程序,它的效果是自动从相关的Internet网站上下载一份最新版的天气预报地图,并用系统缺省的图像查看工具将其显示出来(如下图所示)。为了实现这些功能,该脚本程序Ы定义成三个部分。
在脚本程序的第一部分,需要首先确定当前系统的Mac OS版本是否是10.x,因为这个脚本程序中的部分功能需要Mac OS X的支持。
t theSystemVersion to version of application "Finder" as text
这个语句的作用是将应用程序Finder的version属性赋值给theSystemVersion变量,或者更精确地说是创建一个text类的对象,并对它进行赋值。t…to…是AppleScript中最基本的赋值命令,…of…可以用于获得特定对象的特定属性或元素对象的引用(reference),…as…用于强制定义对象的类型。
if cond character of theSystemVersion is equal to"." then
display dialog "This script requires Mac OS X."
额头凹陷return
end if
这是一个AppleScript的if判断语句,用于判断theSystemVersion文本中的第二个字符是否等于“.”,以确定系统的版本号是否是10.x以前的版本(如:8.x或9.x)。AppleScript中对特定对象的引用方式不但٫常形象,而且也٫常灵活,如cond character of …也可以Ы写成: 2nd character of …, character 2 of …或character[2] of …。
一旦判断条件成立,AppleScript将执行display dialog命令,以显示一个消息对话框,并由return命令结束程序运行。
在脚本程序的第二部分,AppleScript将从网站上下载一个特定的JPEG 图像,并将他保存在桌面上。
t thePictureURL to"/images/asia_china …… mdy_y.jpg"
宣传教育
t theDesktopPath to path to desktop as string
t theLocalFile to theDesktopPath & "weathermap.jpg"