Sunday, October 4, 2009

Automator应用实例(2) - 抓贼工具-自动抓拍发送器

有个叫iAlertU的软件,它有个功能是当小偷打开偷来的苹果电脑以后,电脑用自带iSight给贼拍个照,然后把照片通过邮件发出去。这个工序似乎非常的清楚:

登录->Photo Booth拍照->Finder找到照片->激活Mail->发出附件。

Automator在用户登录前不可能起作用,但是我们可以把Automator应用连接到用户的登录项目中去。在登录以后我们需要做一些准备工作。在系统软件中能支持Automator的操作中,没有可以直接帮你找到用Photo Booth所拍的最后一个照片的操作。也就是说假设你的Photo Booth文件夹里已经存有多个照片,使用Automator资源库里的操作没办法帮你选最后一个照片。这里采用了一个迂回的方法:

用Finder找到用户Photo Booth文件夹->把里面的所有内容存档->删除里面除了归档以外的文件。

这个时候你的Photo Booth文件夹下就空了。在拍照以后,里面的照片就只有一张。你只要找到这个jpg文件,然后存档(变成Zip文件),在发送出去就行了。再完善一下这个流程,就变成:

1。 用Finder找到用户Photo Booth文件夹 (结果:Photo Booth文件夹)

2。 用Finder调出文件夹内内容(输入:Photo Booth 文件夹。结果:该文件夹内的所有文件).

3。 把文件过滤(里面可能有zip文件) (输入:Photo Booth文件夹。结果:非zip的所有文件)

4。 把除了zip以外的文件归档 (输入:非zip的所有文件。结果:非zip的所有文件被打成一个zip包)

5。 把归档重新用时间命名(来避免重名) (输入:刚生成的zip。结果:重新命名为“归档+时间”.zip)

6。 用Finder找到Photo Booth文件夹中的非zip的所有文件 (因为第4步所提供的结果是一个.zip文件,所以此时只有在调动Finder来找这个Photo Booth文件夹。结果:Photo Booth 文件夹内的非zip的所有文件)。

7。将非zip的所有文件送到废纸篓。(输入:非zip的所有文件,结果:这些文件到了废纸篓。换句话说,Photo Booth文件夹此时应该只有zip文件。)

—— 截至到此时,一个工序实际已经完成。下一个工序将开始。

8。用Photo Booth拍照。(结果:Photo Booth文件夹里产生一张照片)

9。Automator 等待5秒钟,给Photo Booth充足的时间来产生照片。

10。关掉Photo Booth。

——- 到此为止,其实又一个工序已经完成。

11。用Finder 找到Photo Booth文件夹的jpg文件 (结果:jpg文件)。

12。用Finder 把该图片归档 (输入:jpg文件。结果: 装有jpg的zip文件包).

13。用Mail新建邮件(输入:zip文件包。结果:带有附件的邮件信息)。

14。发送邮件。(输入:邮件信息。结果:待发邮件被发出)。

15。让Automator等待10秒钟,以便Mail里有多个待发信息。

16。关闭Mail。

相应的操作如下:

1。应用:Finder。操作:获得指定的Finder项 (get specified Finder items)。注释:将该操作拉到工作空间后,点操作中图框内的加号,然后找到图片/Photo Booth。

2。应用:Finder。操作:获得文件夹内容(get folder content)。

3。应用:Finder。操作: 过滤Finder项(Filter finder content)。注释:选择并输入:名称扩展名不包含zip。

Picture 27.png

4。应用: Finder。操作: 创建归档 (Create Archive)。注释:可以随便起一个文件名。位置选择为图片文件夹下的Photo Booth文件夹。

5。应用: Finder。操作: 更改Finder项的名称(Rename Finder Items)。注释:选择”添加日期或时间”。日期/时间: 创建; 格式:月日年; 位置: 名称之后; 分隔符:无。

6。应用: Finder。操作: 查找Finder项(Find Finder Items)。

Picture 28.png

7。应用:Finder。操作:移至废纸篓。

8。应用:Automator。操作:运行AppleScript。注释: 由于Photo Booth本身没有支持Automator的操作,所以只有借助其他方法来完成,按照下图中第六步的内容在你的AppleScript栏内输入。注意如果你使用的是中文环境,应该把原文中的”File”,改成3。 那一行就应该写成: tell menu 1 of menu bar item 3 of menu bar 1

另外,这段AppleScript只有在启动辅助设备的控制以后才能够生效。到系统预置(System Preferences)中的万能辅助(Universal Access)里,勾选最下面的一行“启用辅助设备的控制”(Enable Assistive Device Control)。

9。应用: Automator。操作: 暂停(Pause)。注释:Photo Booth在启动后要等3秒才能拍照,拍完照后又要一点时间来生成文件。所以不妨设置为停顿5秒。

Picture 29.png

10。应用: Automator。操作: 运行 AppleScript(Run AppleScript)。注释:按照图中的命令输入。

11。应用: Finder。操作: 查找Finder项(Find Finder Items)。注释:位置为图片文件夹下的Photo Booth文件夹。选择并输入扩展名等于jpg。

12。应用: Finder。操作:创建归档(Create Archive)。注释:把归档的文件夹存在其它位置,比如文稿文件夹内。归档名称可以随便命名。

Picture 30.png

13。应用: Mail。操作: 新建Mail邮件(New Mail Message)。注释:输入Email地址和简单的标题,选择你的email账号。要想使用这个功能,必须先设置Apple Mail。

14。应用: Mail。操作: 发送待发邮件(Send outcoming messages)。

15。应用: Automator。操作: 暂停(Pause)。注释:设置成10秒或更短一点。

16。应用: Automator。操作: 运行AppleScript(Run AppleScript)。注释:按图中内容输入。

Picture 311.png

在试运行成功以后,应该将此工序”存储为…”(Save As…)应用(从“存储为”对话栏里将类型设置为应用。当应用测试成功以后,打开系统预置(System Preferences),在账户(Accounts)预置中,点击启动项目(Startup Items),然后把你所存的Workflow应用文件拉到启动项目栏中。当用户再次登录时,就会调用此应用。

本实例的Workflow文件可以此处下载:thiefSnapshot.zip,但是应该注意,由于这个程序中有固定的链接,因此在你打开该Workflow文件时,可能会造成错误。另外,以上程序是用Mac OS 10.4系统的Automator所作,尚未在Leopard上测试过。

No comments:

Post a Comment