很多 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 应用 脚本编辑器 编写脚本然后文件>储存 保存为应用程序

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

cp /Applications/Typora.app/Contents/Resources/AppIcon.icns /Applications/Typora-PicGO.app/Contents/Resources/applet.icns
这里直接使用命令可能会导致图标没有重新加载,应该需要清除缓存,不知道怎么清的可以重启下 Mac

启动后我们就能同时打开 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 等脚本论坛中寻求帮助。