如何使用AppleScript编写应用程序脚本,但仅在安装时?

时间:2018-03-21 00:58:14

标签: applescript

我的一些脚本通知使用Growl,但我现在尝试在没有安装Growl的机器上运行它们。

这一行

tell application "Growl"
    notify with name "Script" title "Script" description NotifyText application name "Script" with sticky
--                   _
end tell

在带下划线的字符处给出此编译器错误:

  

预期“给定”,“进入”,“带”,“不带”,其他参数名称等,但找到“"”。

AppleScript如何选择使用应用程序?

1 个答案:

答案 0 :(得分:2)

据我所知脚本编辑器没有条件编译指令,如果没有安装应用程序,那么它将在编译时出错。在某些情况下,脚本编辑器可以通过在缺少的应用程序的名称中创建虚拟应用程序来伪造成编译,但这有限的应用程序和成功并且实际上取决于代码为缺少的申请书写。

关于编写代码以有条件地使用目标应用程序(如果已安装),需要测试其存在并将目标应用程序代码包装在{{1}中} 语句块。在以下示例 AppleScript 代码中,我在电影文件夹中有一个我想要播放的测试视频文件在 VLC 中如果已安装,如果没有,则播放 QuickTime播放器,例如:

if

现在我没有安装 Growl ,但上面显示的示例 AppleScript 代码应该适用于它好。在安装了它的Mac上,您只需要在目标应用程序运行时确定其set thisVideo to (path to movies folder as string) & "test.mp4" try tell application "Finder" to get application file id "org.videolan.vlc" set appExists to true on error set appExists to false end try if appExists then set theApp to "VLC" tell application theApp to open thisVideo else tell application "QuickTime Player" open thisVideo play document 1 end tell end if 属性并使用它来代替示例代码中的内容,即:

bundle identifier

注意: 示例 AppleScript 代码就是这样,并且不使用任何其他错误处理然后显示的内容,仅表示完成任务的多种方法之一。用户有责任根据需要添加/使用适当的错误处理