
he puesto elCaja SimpleCompartirLa aplicación se inicia al iniciar sesión, pero la aplicación inicia su panel de preferencias justo después de cargar su ícono en la barra de menú. Configurarlo para que comience en modo "oculto" en Preferencias del sistema > Usuarios y grupos > Elementos de inicio de sesiónno cambia ese comportamiento.
Intenté crear un AppleScript, guardado como una aplicación, para iniciar elCaja SimpleCompartirapp al iniciar sesión y ocultar el panel de preferencias, pero no funciona como se esperaba.
set tApp to "Box SimpleShare"
tell application tApp to launch
tell application "System Events"
set visible of process "Box SimpleShare" to false
end tell
Esto inicia la aplicación pero no cierra elCaja SimpleCompartirpanel de preferencias. ¿Cuál sería el código adecuado para hacer eso?
Respuesta1
La ventana de preferencias de Box es particularmente persistente: no solo insiste en mostrarse cada vez que se inicia la aplicación, sino que se volverá a abrir si se cierra antes de que la aplicación haya terminado su secuencia de inicialización. Sin embargo, con algunas secuencias de comandos GUI,esposible deshacerse de él. El siguiente código iniciará la aplicación, esperará a que aparezca la ventana de preferencias y la cerrará después de un breve retraso (para que pueda completar su secuencia de inicialización):
property timeOutMax : 5
property timeOutStep : 1
property boxLoadDelay : 2
set boxApp to "Box SimpleShare"
tell application boxApp to launch
set timeOutCounter to 0
tell application "System Events"
tell process boxApp
repeat while (window 1 of it exists) is false and timeOutCounter is less than timeOutMax
delay timeOutStep
set timeOutCounter to timeOutCounter + timeOutStep
end repeat
if window 1 of it exists then
delay boxLoadDelay
click (button 1 of window 1 of it)
end if
end tell
end tell
Si la ventana se vuelve a abrir en su sistema, establezca un valor más alto para boxLoadDelay
. Además, si el script expira antes de que se haya cargado la aplicación, ajuste el valor de timeOutMax
(y posiblemente de timeOutStep
si tiene que seleccionar un umbral de tiempo de espera mucho más alto).