Código de ejecución de AppleScript en un momento específico

1

Probé una forma diferente de ejecutar un script en un horario / horario específico, Encontré a Lingon bastante útil, también trato de usar el calendario pero el resultado fue muy malo.

Escribí esto:

repeat
    set myDate to date string of (current date)


    set myTime to time string of (current date)

    set myDateTime to myDate & " - " & myTime

    if myTime > "11:30:00" and myTime < "11:30:10" then
        display notification "demo - This is the time"
    end if
end repeat

que parece funcionar bien pero, obviamente, genera algunas notificaciones. ¿Cómo puedo ejecutar un script solo una vez cuando se encuentra esta condición?

Pensé que podía jugar con algo de retraso, pero luego me preocupa que no pueda cumplir la condición de tiempo.

    
pregunta Kevin 26.05.2018 - 12:58

3 respuestas

3

Esto es solo un re-hash un poco más eficiente de la respuesta existente ...

set gIsThisTime to false

repeat until gIsThisTime is true
    delay 60
    set myTime to time string of (current date)
    if myTime > "1:15:00 pm" and myTime < "1:20:00 pm" then
        set gIsThisTime to true
    end if
end repeat

set myDate to date string of (current date)
set myDateTime to myDate & " - " & myTime
display notification "time = " & myDateTime

Notas:
omitir am / pm significa que se activará en o am o pm, lo que ocurra primero.
no funciona en el reloj de 24 horas, por lo que 13:15:00 no se activará

    
respondido por el Tetsujin 26.05.2018 - 14:17
0

Este código, escribí hace un tiempo, puede ser útil para usted. Esta secuencia de comandos, cuando se ejecute, le permitirá ingresar el tiempo deseado, luego elegir un archivo o aplicación para iniciar en ese momento.

Run_Script_At_Specific_Time()

on Run_Script_At_Specific_Time()
    set theTime to time string of (current date)
    activate
    set requested_time to display dialog ¬
        "Please Enter Your Start Time With The Following Format: Hour:Minutes:Seconds" default answer theTime ¬
        buttons {"CANCEL", "OK"} ¬
        default button ¬
        "OK" cancel button ¬
        "CANCEL" with title ¬
        "Choose App Launch Time" giving up after 10
    set requested_time to text returned of requested_time
    activate
    set chosenApp to choose file with prompt ¬
        "Choose The App Or File You Would Like To Run At Your Specified Time" default location (path to desktop folder) ¬
        invisibles false ¬
        multiple selections allowed false ¬
        without showing package contents
    repeat until theTime is greater than or equal to requested_time -- Added The "Greater Than" Just As A Failsafe
        delay 10
        set theTime to time string of (current date)
    end repeat
    tell application "Finder"
        open chosenApp
    end tell
end Run_Script_At_Specific_Time
    
respondido por el wch1zpink 28.05.2018 - 00:23
-2

Ok, creo que lo encontré:

set isThisTime to false
repeat
    set myDate to date string of (current date)


    set myTime to time string of (current date)

    set myDateTime to myDate & " - " & myTime

    if myTime > "11:30:00" and myTime < "11:47:26" then
        set isThisTime to true
        exit repeat
    end if
end repeat

if isThisTime is true then
    display notification "in the time"
end if
    
respondido por el Kevin 26.05.2018 - 12:59

Lea otras preguntas en las etiquetas