为当前计算机上未安装的程序创建AppleScript

时间:2011-06-10 02:40:26

标签: applescript

我正在尝试制作AppleScript的两个副本,一个适用于Entourage,另一个适用于Outlook。我只在当前的计算机上安装了Entourage。

根据微软网站上的信息,两个应用程序都有相同的AppleScript命令库,我应该只需更改脚本中引用的应用程序名称。

更改:

Tell application "Microsoft Entourage"

Tell application "Microsoft Outlook"

阻止我保存脚本,因为我没有在此计算机上安装Outlook。有没有办法解决?我是否需要使用文本编辑器编辑实际的脚本文件并在那里进行更改?

谢谢!

3 个答案:

答案 0 :(得分:2)

以下解决方法可以解决问题。在安装了Entourage的计算机上,即使未安装Outlook,也可以使用using terms指令编译脚本:

set theApp to a reference to application "Microsoft Outlook"
using terms from application "Microsoft Entourage"
    tell theApp
        get version
        ...
    end tell
end using terms from

编译并保存脚本时,AppleScript编辑器会对您丢失的Outlook应用程序提出错误信息,但它仍会生成已编译的AppleScript文件(.scpt)。

答案 1 :(得分:0)

Applescript是一种预先编译的文件格式,这意味着每次单击“保存”时,它都会运行一系列步骤以确保脚本能够正常运行,但实际上只是运行脚本的逻辑。这些步骤的一部分是查找应用程序以查看它是否存在于Mac上。

简而言之,如果要将脚本保存为Applescript,则需要安装目标应用程序,否则可以将脚本保存为文本文件并将文件移动到目标Mac以在那里保存为Applescript

答案 2 :(得分:0)

应该可以制作一个适用于Entourage和Outlook的脚本,如果在编译或运行时找不到一个脚本,则不会烦恼。我没有Entourage或Outlook,但它应该像这样工作:

using terms from application "Microsoft Entourage"
    script theScript
        tell application "Finder" to try
            set theApp to application file id "Entourage's Bundle ID" as text
        on error
            set theApp to application file id "Outlook's Bundle ID" as text
        end try
        tell application theApp
            -- do stuff
        end tell
    end script
end using terms from
store script theScript in "MyScript.scpt"

“使用术语”仅在编译脚本时才有意义 - 运行时不需要它,但由于某些原因,如果找不到该应用程序,您仍会遇到错误。因此,通过将其包装在脚本对象中然后将该脚本写入文件,生成的脚本仍将运行,但不会包含“使用术语”,因此不会对用户造成错误。

为了获得对正确应用程序的引用,Finder可以通过ID查找它,如果找不到它则只是错误而不是窃听用户。你需要在那里插入正确的ID,我不知道它们是什么。