Tengo un applescript que se ejecuta automáticamente y depende de que la aplicación "Contactos" se esté ejecutando. De vez en cuando, falla cuando el proceso "Contactos" desaparece misteriosamente del monitor de actividad, aunque el dock sigue mostrando que se está ejecutando.
Lo siguiente NO funcionará:
- Applescript "dile a la aplicación "Contactos" que se active
- Applescript "dile a la aplicación "Contactos" que salga (ambos responden con "la aplicación no se está ejecutando")
- Applescript "do shell script killall launchserviced" seguido de "killall dock" se ejecuta bien pero no soluciona el problema
La única solución es salir MANUALMENTE de "Contactos" desde el dock y luego reactivarlo pero esa solución no es satisfactoria porque requiere una intervención manual. ¿Alguna idea sobre a) por qué se produce el error y b) cómo puedo subsanar el error cerrando "Contactos" desde applescript?
Cualquier idea será apreciada
....
En respuesta al comentario de bmike;
Ejecutando OS X 10.10.5 y aquí está la sección relevante del applescript
set todaysdate to (fecha actual) as text
*dice la aplicación "Eventos del sistema"
try
set myprocessid to (get id of process "Contacts")
on error number errorno
display dialog errorno
if errorno is equal to -1728 then -- process not found
try
tell application "System Events" to run application "Contacts"
on error number errorno
if errorno = -600 then
display dialog errorno & todaysdate as text
end if
end try
do shell script "/bin/sleep 3" --and allow enough time for the app to activate
end if
end try
fin del relato
Esta sección intenta activar "Contactos" si encuentra que el proceso no se está ejecutando (error -1728). A continuación, intenta ejecutar la aplicación, pero siempre da error con -600 (aplicación no se está ejecutando). Un simple applescript para salir de la aplicación también da error con -600.
Por lo tanto, si falta el proceso, la aplicación no puede ser activada y salir tampoco funciona.
Gracias por sus comentarios