Tengo un AppleScript que abre automáticamente SelfControl.app para evitar distracciones cuando quiero estar trabajando. El script es muy similar a automatizar un filtro de contenidos de Internet y es lanzado automáticamente por iCal a una hora determinada.
El problema es que cuando el script se ejecuta, la ventana se abre en la pantalla, y si estoy en medio de escribir algo, entonces mi escritura interfiere con el cuadro de diálogo para introducir la contraseña, y el script falla.
Cómo puedo conseguir que el script se ejecute independientemente de la actividad del usuario? En otras palabras, ¿cómo puedo ejecutar el script sin mostrar al usuario la evidencia de la GUI de que el script se está ejecutando?
AppleScript
A continuación se muestra un fragmento de código. myTime
y myPass
se definen antes en el script:
set myTime to …
set myPass to …
tell application "SelfControl" to activate
tell application "System Events"
tell process "SelfControl"
tell slider of window "SelfControl" to set value to myTime
click button "Start" of window "SelfControl"
end tell
tell window 1 of process "SecurityAgent"
with timeout of 15 seconds
repeat
set tryAgain to false
try
set value of text field 2 of scroll area 1 of group 1 to myPass
on error
delay 1
set tryAgain to true
end try
if not tryAgain then exit repeat
end repeat
click button 2 of group 2
end timeout
end tell
end tell