Codice di esecuzione di Applescript in un momento specifico

1

Ho provato un modo diverso per eseguire uno script su un orario / orario specifico, Ho trovato Lingon abbastanza utile, provo anche ad usare il calendario ma il risultato è stato pessimo.

Ho scritto questo:

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

che sembra funzionare bene ma, ovviamente, genera qualche notifica. Come posso eseguire uno script solo una volta quando viene trovata questa condizione?

Ho pensato di poter giocare con un po 'di ritardo, ma poi sono preoccupato che mi manchi la condizione temporale.

    
posta Kevin 26.05.2018 - 12:58
fonte

3 risposte

3

Questo è solo un re-hash leggermente più efficiente della risposta esistente ...

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

Note:
omettendo am / pm significa che si innescherà su o am o pm, a seconda di quale colpisce per primo non funziona con le 24 ore, quindi 13:15:00 non si innescherà

    
risposta data 26.05.2018 - 14:17
fonte
0

Questo codice, che ho scritto qualche tempo fa, può essere utile per te. Questo script, quando è in esecuzione, ti consentirà di inserire l'ora desiderata, quindi scegliere un file o un'app da avviare in quel 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
    
risposta data 28.05.2018 - 00:23
fonte
-2

Ok penso di averlo trovato:

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
    
risposta data 26.05.2018 - 12:59
fonte

Leggi altre domande sui tag