
Я не уверен, что скрипт Apple — это то, что мне нужно, но, похоже, он делает большую часть того, что мне нужно. Не стесняйтесь предлагать альтернативы.
Мне нужно отправить персонажа в программу в точное время, чтобы начать видео обратного отсчета. Скрипт Apple, который у меня есть, это
tell application "ProPresenter 5"
activate
end tell
tell application "System Events"
keystroke "z"
end tell
Мне нужно иметь возможность начать это, скажем, в 10:40:25 в один день, а затем в 10:40:15 на следующий день. Все руководства, которые я вижу, включают календарь или автоматизатор, но у них разрешение в 1 минуту. Мне также нужно настроить его всего за 20 минут
Если это имеет значение, у меня OS X 10.8.5.
решение1
Вот небольшая настройка, которую я сделал для вас, которая будет отображать диалоговое окно с просьбой ввести время, чтобы системные события отправляли нажатие клавиши. Вы можете сохранить этот скрипт как приложение и запускать его, когда захотите. Другой вариант — удалить первые две строки кода и заменить их этим... property requested_time : "10:40:25 AM”
Затем вы можете просто добавить скрипт в событие iCal для запуска каждый день в любое время, которое вы выберете
set requested_time to display dialog "Please Enter Your Start Time With The Following Format: Hour:Minutes:Seconds" default answer "10:40:25 AM" buttons {"OK"} default button 1
set requested_time to text returned of requested_time
set theTime to time string of (current date)
tell application "ProPresenter 5" to launch -- Opens The App Without Bringing It Up Upfront. Added This Line To Make Sure Your Application Is Running When System Events Sends The Keystroke. You Can Always Remove This Line If You Prefer
repeat until theTime is greater than or equal to requested_time -- Added The "Greater Than" Just As A Failsafe
delay 1
set theTime to time string of (current date)
end repeat
tell application "ProPresenter 5" to activate
delay .5 -- My system did not need this delay. Yours may not either, but I added it just in case.
tell application "System Events"
keystroke "z"
end tell
Или вы можете сохранить эту версию скрипта как приложение.
property requested_time : "10:40:25 AM”
set theTime to time string of (current date)
tell application "ProPresenter 5" to launch -- Opens The App Without Bringing It Up Upfront. Added This Line To Make Sure Your Application Is Running When System Events Sends The Keystroke. You Can Always Remove This Line If You Prefer
repeat until theTime is greater than or equal to requested_time -- Added The "Greater Than" Just As A Failsafe
delay 1
set theTime to time string of (current date)
end repeat
tell application "ProPresenter 5" to activate
delay .5 -- My system did not need this delay. Yours may not either, but I added it just in case.
tell application "System Events"
keystroke "z"
end tell
Затем вы можете создать новое событие в календаре, которое будет повторяться ежедневно, и за 20 минут до его начала будет запущен скрипт, который вы сохранили как приложение.
решение2
Вы можете просто использовать команду AppleScript, delay
чтобы отложить выполнение скрипта в определенную минуту на необходимое количество секунд.
Согласно вашему примеру: если вы хотите, чтобы он запустился в 10:40:25 ... установите для своего скрипта время выполнения 10:40:00, но поместите команду delay 25
в первую строку.