Safari.app启动时如何自动运行AppleScript?

时间:2019-01-16 10:27:25

标签: safari applescript startup

基本上,我想确保每次打开Safari时都执行自定义的.applescript。

我尝试将脚本添加到“〜/ Library / Scripts / Applications / Safari”文件夹中,但这似乎并不会自动执行。

作为一种解决方法,我可能只需要编写一个既可以启动Safari又可以运行自定义内容的AppleScript。我只是想检查是否有更清洁的方法。

1 个答案:

答案 0 :(得分:1)

将内容放入〜/ LibraryScripts / Applications 文件夹中只会使它们在特定应用程序处于活动状态时可用。

除了运行脚本和Safari的别名之外,您还可以在后台应用程序中使用某些AppleScriptObj-C(可能通过登录项运行),该应用程序注册了 NSWorkspaceDidLaunchApplicationNotification 通知以获取名称。启动应用程序。这样还具有查看Safari何时从您的别名以外启动的优势,例如通过各种文档链接(邮件,PDF等)

use framework "Foundation"

my addObserver:me selector:"appLaunchNotification:" |name|:(current application's NSWorkspaceDidLaunchApplicationNotification) object:(missing value)

on appLaunchNotification:notification -- an application was launched
  # notification's userInfo contains the application that was launched
  set applicationInfo to NSWorkspaceApplicationKey of notification's userInfo -- NSRunningApplication
  set appName to (localizedName of applicationInfo) as text
  -- do your thing depending on appName
end appLaunchNotification: