2 votos

Applescript aplicación se bloquea continuamente

Cada vez que intente ejecutar este código no se registro el texto.

 repeat
        set myTime to (time of (current date))
        set precisetime1 to 82800
        set precisetime2 to 84600
        set precisetime3 to 85500
        set precisetime4 to 86100
        set wantTime to "0"
        if myTime ≥ precisetime1 then
            repeat
                set myTime to (time of (current date))
                if myTime ≥ precisetime2 then
                    repeat
                        set myTime to (time of (current date))
                        if myTime ≥ precisetime3 then
                            repeat
                                set myTime to (time of (current date))
                                if myTime ≥ precisetime4 then
                                    repeat
                                        set myTime to (time of (current date))
                                        if myTime ≤ wantTime then
                                            tell application "Messages"
                                                activate
                                            end tell
                                            tell application "System Events"
                                                keystroke "Good Morning"
                                                keystroke return
                                            end tell
                                            delay (0.5)
                                            exit repeat
                                        end if
                                        delay (5)
                                    end repeat
                                end if
                                delay (300)
                            end repeat
                        end if
                        delay (900)
                    end repeat
                end if
                delay (1800)
            end repeat
        end if

        log {"checked at % seconds since midnight", myTime}
        delay (3600)
    end repeat

este código se supone que esperar hasta la medianoche, luego de enviar un mensaje diciendo "buenos días" he añadido tantas declaraciones y repeat debido a que el código fue diseñado para funcionar constantemente y la comprobación de que cada 5 segundos usado demasiado de los recursos.

2voto

S38 Puntos 371

Resulta que Mi respuesta fue simple

He añadido una función de retraso

set myTime to (time of (current date))
set waitTime to 86400 - myTime
delay (waitTime)
tell application "Messages"
    activate
end tell
tell application "System Events"
    keystroke "Good Morning"
    keystroke return
    log {"checked at % seconds since midnight", myTime}
end tell
delay (3600)

1voto

Mineinjava Puntos 44

usted puede utilizar este tutorial para utilizar launchd:

https://www.maketecheasier.com/use-launchd-run-scripts-on-schedule-macos/

<key>StartCalendarInterval</key> 
<dict> 
    <key>Hour</key> 
    <integer>9</integer> 
    <key>Minute</key> 
    <integer>0</integer> 
<string>/Users/user/Scripts/restart.sh</string>
</dict>

Yo también soy nuevo en AppleScript

Espero que esto funcione

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X