如何在 Apple Script 中显示休眠时防止应用程序崩溃

How to prevent application from crashing when display goes to sleep in Apple Script

如何防止 Apple Script 应用程序在计算机注销或进入睡眠状态时崩溃?

我目前正在开发一个将桌面背景设置为当前在 iTunes 中播放的歌曲的专辑封面的应用程序,但是如果我让显示器进入睡眠状态,iTunes 将继续播放音乐但我的应用程序会崩溃,这意味着当我 return 到计算机时,桌面背景不再更新。

这是我用来设置壁纸的代码:

        tell desktop 2
            set picture to fileName
        end tell

其中 fileName 是当前歌曲的 iTunes 图片名称,已提取并保存到桌面。

它说桌面 2,因为我每个屏幕都有两个不同的应用程序,并在我的第二个屏幕上进行测试。

这是我在 Automator 中 运行 并将显示器置于睡眠状态时遇到的错误:

“运行 AppleScript”操作遇到错误。
系统事件出现错误:无法获取桌面 2。索引无效。

我在主显示器上也得到了相同的结果。

如何阻止此脚本在显示器休眠时遇到错误?

任何建议将不胜感激,因为我希望任何想要它的人都拥有此应用程序。

最安全的方法是检查该项目是否存在

if exists desktop 2 then
  tell desktop 2
    set picture to fileName
  end tell
end if

或将代码包装在忽略任何错误的 try 块中。

try
  tell desktop 2
    set picture to fileName
  end tell
end try