Я только что провел тест, используя Python + Appscript для выполнения своих сценариев, а не Applescript, и он продолжал без проблем работать в моей системе, когда пользователь был приостановлен (т.е. переходил в окно входа в систему, но спользователь все еще вошел в систему) или если сохранение экрана было запущено.Это был простой скрипт, но предположительно демонстрирующий, что вам нужно было сделать.
Appscript поставляется с ASTranslate, который переводит вызовы Applescript в эквивалентный вызов Python + Appscript.Он не обрабатывает переменные, но, как правило, вы можете немного порезать и вставить, чтобы выяснить, как преобразовать ваш скрипт.Это действительно быстро, и Python - намного более мощный язык для сценариев, чем Applescript.
#!/usr/bin/python
import sys, os
from appscript import *
import time
def gettodos():
cs = app(u'iCal').calendars.get()
for c in cs:
print c.name()
tds = c.todos()
for t in tds:
print " ", t.summary()
def test():
for i in range(1,1000):
print
print "Run # " + str(i)
print
gettodos()
time.sleep(10)
if __name__ == '__main__':
test()
# change to 0 for success, 1 for (partial) failure
sys.exit(0)