2010-09-15 8 views
5

Mi chiedo come avere un avviso popup sul mio computer (Mac OS X) ogni ora. Ho pensato di scrivere questo in Applescript sarebbe piuttosto semplice, ma non ho esperienza con Applescript. GrazieCome scrivere Applescript che mi darà un avviso popup orario

+0

Esercitazione su applescript per iniziare: http://homepage.mac.com/swain/Macinchem/Applescript/AppScript_tut/AppScrip_tut_1/appscript_tut_1.htm – FrustratedWithFormsDesigner

+1

@FrustratedWithFormsDesigner Link morto! –

risposta

6

Il gestore di base per fare cose su base regolare in AppleScript è il gestore inattivo.

on idle 
display dialog "Go back to work" buttons "Work Harder" default button "Work Harder" 
return 3600 
end idle 

Questo script aprirà una finestra di dialogo all'avvio dell'applicazione e quindi ogni 3.600 secondi dopo aver premuto il pulsante. Qualunque numero restituito dal gestore inattivo sarà il numero di secondi prima che venga attivato il successivo evento inattivo.

Se si desidera che sia nella mezz'ora e non ogni sessanta minuti, si vorrebbe che lo script inattivo restituisca un numero diverso di secondi, forse 60, quindi verificare se ci si trova parte giusta dell'ora.

on idle 
if the minutes of the (current date) is 30 then 
    display dialog "Go back to work" buttons "Work Harder" default button "Work Harder" 
end if 
return 60 
end idle 

Questo mostrerà solo il dialogo a metà passato. (Come Unix, il concetto di AppleScript della data corrente include l'ora corrente.)

In ogni caso, si desidera salvare in AppleScript Editor come "Applicazione" e "Rimani aperto" per far sì che risponda agli eventi inattivi di smettere di fumare dopo aver corso. E puoi aggiungere l'applicazione alla tua lista di "Elementi di login" nella preferenza di sistema "Account" per eseguirla automaticamente quando effettui il login.

+0

Grazie. Nomi dei pulsanti validi – Kramer

+0

Se fossi stato più sveglio, sarebbero stati più simili a Animal Farm. –

+0

Non sarebbe più semplice sottrarre i minuti della data corrente dalla sessanta, moltiplicarla per 60 e restituirla nella seconda versione? In questo modo, non è necessario controllare ogni minuto. – 11684

0

Dopo aver provato la soluzione Jerry, ho trovato un problema. Se la tua App AppleScript non è "superata" al momento dell'evento, potresti ricevere un errore AppleScript e l'unica cosa che ti chiamerà è il lampeggiare delle icone nel documento. così ho fatto un piccolo cambiamento: Aprire l'editor AppleScript e digitare questo:

on idle 
    tell application "call_me" 
    activate 
    end tell 
    display dialog "Back to work" buttons "Work!" default button "Work!" 
    return 3600 
end idle 

Salvare lo script durante la selezione "Applicazione" nel menu in basso del selettore file e quindi il controllo "Non smettere "(in francese" Ne pas quitter aprés l'exécution ") così l'App resterà attiva anche dopo l'evento. È necessario assegnare il nome "call_me" alla propria app o, se si modifica il nome, modificare anche questo nome nel codice (attivare l'applicazione "xxxx") Ogni 3600 secondi, l'app verrà completata e quindi verrà visualizzato casella di avviso.

Un solo punto: la prima volta che salvi l'app, Applescript ti mostrerà un selettore e ti chiederà "Dov'è call_me.app?" Basta cancellare questo selettore e salvare.

Oh !! Devo tornare al lavoro !!