Запускайте скрипт AppleScript в произвольное время в течение дня

#email #random #applescript

Вопрос:

Это нормально работает в редакторе сценариев, но при запуске я ничего не получаю или окно со сценарием для редактирования.

Мне нужно, чтобы мне предлагали примерно 8 раз в день в произвольное время писать в дневнике, но только в часы бодрствования.

Может ли кто-нибудь предложить изменить сценарий или помочь в запуске. osascrpts просто сидит там и хочет, чтобы я продолжал нажимать кнопку воспроизведения.

Случайные числа очень малы для тестирования.

 use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions
set recipientName to "Maddy"
set recipientAddress to "xxxxxxxxx@icloud.com"
set theSubject to "Flow Journal"
set theContent to "Time hun, take the time now and go do it,, will take 2 mins."
set i to 3
repeat until i = 0
    tell application "Mail"
        repeat loopCount times
            ##Create the message
        end repeat
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
        
        ##Set a recipient
        tell theMessage
            make new to recipient with properties {name:recipientName, address:recipientAddress}
            
            ##Send the Message
            send
        end tell
        set d to random number from 90 to 180
        with timeout of 3 seconds -- don't recall how long your script will wait; this makes sure it's long enough.
            do shell script "sleep " amp; d -- note the space after sleep.
        end timeout
        set i to i - 1
    end tell
end repeat
 

Комментарии:

1. Похоже, вы просто видите диалоговое окно запуска, хотя в опубликованном сценарии также есть ошибка с repeat loopCount times оператором. Обратите внимание, что вам следует избегать использования команды «спящий режим», так как это блокирует пользовательский интерфейс приложения (меню «Выход» и т. Д.) — Попробуйте использовать обработчик простоя и сохраните приложение как открытое (и не показывайте экран запуска).