Ejecute AppleScript en un segundo específico.

Ejecute AppleScript en un segundo específico.

No estoy seguro de si el script de Apple es lo que necesito, pero parece hacer la mayor parte de lo que necesito. No dudes en ofrecer alternativas.

Necesito enviar un personaje a un programa en un momento exacto para iniciar 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 iniciar eso a las 10:40:25 de un día y luego a las 10:40:15 del día siguiente. Todas las guías que veo involucran el calendario o el automatizador, pero tienen una resolución de 1 minuto. También sólo necesito configurarlo con unos 20 minutos de antelación.

Si importa, estoy en os x 10.8.5

Respuesta1

Aquí hay algo que configuré para usted y que mostrará un diálogo que le pedirá que ingrese 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 dos primeras líneas del código y reemplazarlas con esto… property requested_time : "10:40:25 AM”. Luego, podrías simplemente agregar el script a un evento de iCal para iniciarlo todos los días a la hora que elijas.

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 puedes 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 repetirlo diariamente y, 20 minutos antes, se iniciará el script que guardó como aplicación.

ingrese la descripción de la imagen aquí

Respuesta2

Simplemente puede usar el delaycomando AppleScript para retrasar la ejecución del script en el minuto exacto durante la cantidad de segundos que desee.

Según 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 coloque el comando delay 25en la primera línea.

información relacionada