很多 Mac 用户都希望在使用 Typora 写作时能够自动启动 PicGO 来上传图片,这样可以提高写作效率。还能节约一直后台运行 PicGO 带来的电量性能损耗。本文将分享一种实现方式,通过 Mac OS 的 AppleScript 脚本来关联多个应用程序的生命周期,以实现启动 Typora 同时启动 PicGO 的功能。

您是否想要在使用 Typora 写作时能够自动启动 PicGO 来上传图片?本文将分享一种通过 AppleScript 脚本实现启动 Typora 同时启动 PicGO 的方法。

代码实现

这里提供了一份简单的 AppleScript 脚本,可用于启动 Typora 并检查其是否正在运行。如果 Typora 已关闭,则会退出 PicGO。

global theApp

on quitTheApp()
    if theApp is running then
        quit theApp
    end if
end quitTheApp

set theApp to application "PicGo"
activate theApp

tell application "Typora"
    activate
end tell

# 每隔1秒钟检查一次Typora是否还在运行
repeat
    if not application "Typora" is running then
        quitTheApp()
        exit repeat
    end if
    delay 1
end repeat

该脚本首先将 Typora 应用程序激活,并将 PicGO 设置为 theApp 变量。然后,它使用一个循环来每隔 1 秒钟检查一次 Typora 是否还在运行。如果 Typora 已关闭,则脚本将退出 PicGO。

保存到应用程序

打开 Mac 应用 脚本编辑器 编写脚本然后文件>储存 保存为应用程序

image-20230406153132984

默认图标太丑了,我们替换应用程序图标

image-20230406153632078

cp /Applications/Typora.app/Contents/Resources/AppIcon.icns /Applications/Typora-PicGO.app/Contents/Resources/applet.icns

这里直接使用命令可能会导致图标没有重新加载,应该需要清除缓存,不知道怎么清的可以重启下 Mac

image-20230406155244742

启动后我们就能同时打开 Typora 和 PicGO 了,退出 Typora 也会同时退出 PicGO。

定制化的脚本

您可以根据自己的需求来定制化这个脚本。比如,您可以将 PicGO 替换成您想要启动的其他应用程序,或者将检查间隔更改为其他时间间隔。

global theApp

on quitTheApp()
    if theApp is running then
        quit theApp
    end if
end quitTheApp

set theApp to application "Preview" # 这里将PicGO替换为了Preview
activate theApp

tell application "Typora"
    activate
end tell

# 每隔3秒钟检查一次Typora是否还在运行
repeat
    if not application "Typora" is running then
        quitTheApp()
        exit repeat
    end if
    delay 3 # 这里将检查间隔更改为了3秒钟
end repeat

总结

通过 AppleScript 脚本,我们可以实现在 Mac 上关联多个应用程序的生命周期。这对于那些需要同时使用多个应用程序的用户来说是非常有用的。虽然这个脚本很简单,但您可以通过修改其代码来实现更高级的功能。

最后,如果您尝试使用这个脚本时遇到问题,可以在 Mac 等脚本论坛中寻求帮助。