Ejecutar applecript en un segundo específico

1

No estoy seguro de si el script de Apple es lo que necesito, pero parece que hace casi todo lo que necesito. Siéntase libre de ofrecer alternativas.

Necesito enviar un personaje a un programa a una hora exacta para comenzar un video de cuenta regresiva. El script de Apple que tengo es

tell application "ProPresenter 5"
    activate
end tell
tell application "System Events"
    keystroke "z"
end tell

Lo que necesito es poder comenzar con eso a las 10:40:25 un día y luego a las 10:40:15 al día siguiente. Todas las guías que veo están relacionadas con el calendario o el automator, pero tienen una resolución de 1 minuto. También solo necesito configurarlo unos 20 minutos antes.

Si importa estoy en os x 10.8.5

birdman3131
fuente

Respuestas:

1

Aquí hay un pequeño detalle que configuré para ti, que mostrará un diálogo que te pedirá que ingreses la hora para que los eventos del sistema envíen la pulsación de tecla. Puede guardar este script como una aplicación y ejecutarlo cuando lo desee. Otra opción sería eliminar las primeras dos líneas del código y reemplazarlo con este ... property requested_time : "10:40:25 AM” . Luego, simplemente puede agregar el script a un evento de iCal para iniciar todos los días a la hora que elija.

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

O puede guardar esta versión del script como una aplicación.

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

Luego, puede crear un nuevo evento de calendario para repetir todos los días, y 20 minutos antes, se iniciará el script que guardó como una aplicación.

enter image description here

wch1zpink
fuente
Probé esto usando la aplicación TextEdit porque no tengo "ProPresenter 5". Funciona como un encanto en la última versión de Sierra. No estoy seguro de si funcionará en 10.8.5
wch1zpink
Lo que terminé usando fue algo parecido a esto. No tengo la computadora a mano porque está en la iglesia, por lo que puedo estar un poco desconectado de mi código. No suelo usar osx. establecer el tiempo 09/25/2017 10:40:25 AM retraso theTime - currentTime El código que aparece en mi pregunta. Aunque probablemente robaré el cuadro de diálogo. podría hacer que sea más fácil para otros ejecutar esto.
birdman3131
-1

Usted podría simplemente utilizar el AppleScript delay comando para retrasar la ejecución de la secuencia de comandos en el minuto exacto, sin embargo, muchos segundos.

Por su ejemplo: si desea que se ejecute a las 10:40:25 ... configure su script para que se ejecute a las 10:40:00 pero ponga el comando delay 25 en primera linea

thealanberman
fuente