Execute o applescript em um segundo específico

1

Eu não tenho certeza se o script da Apple é o que eu preciso, mas parece fazer mais do que eu preciso. Sinta-se à vontade para oferecer alternativas.

Eu preciso enviar um personagem para um programa no horário exato para iniciar um vídeo de contagem regressiva. O script da Apple que eu tenho é

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

O que eu preciso é ser capaz de começar isso em dizer 10:40:25 um dia e depois 10:40:15 no dia seguinte. Todos os guias que vejo envolvem o calendário ou o automador, mas aqueles têm resolução de 1 minuto. Eu também só preciso configurá-lo com cerca de 20 minutos de antecedência

Se for importante, eu estou no os x 10.8.5

    
por birdman3131 24.09.2017 / 18:34

2 respostas

1

Aqui está uma pequena coisa que eu configurei para você, que exibirá um diálogo pedindo que você digite o horário para que os eventos do sistema enviem o pressionamento de tecla. Você pode salvar este script como um aplicativo e executá-lo sempre que quiser. Outra opção seria remover as primeiras duas linhas do código e substituí-lo por… property requested_time : "10:40:25 AM” . Então você poderia simplesmente adicionar o script a um evento do iCal para lançar todos os dias no horário que você escolher

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

Ou você pode salvar esta versão do script como um aplicativo.

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

Em seguida, você pode criar um novo evento de calendário para ser repetido diariamente e, 20 minutos antes, ele lançará o script que você salvou como um aplicativo

    
por 25.09.2017 / 08:43
-1

Você poderia simplesmente usar o comando AppleScript delay para atrasar o script de executar no exato minuto por muitos segundos.

Por exemplo: se você deseja que ele seja executado às 10:40:25 ... configure seu script para execução às 10:40:00, mas coloque o comando delay 25 na primeira linha.

    
por 24.09.2017 / 22:17