3 votos

¿Cómo puedo reiniciar una aplicación con AppleScript?

He creado una aplicación con una "Ejecutar AppleScript" acción de Automator.

He creado un Servicio en Automator que lanza la mencionada aplicación.

El Servicio se activa mediante un atajo de teclado, asignado en Preferencias del Sistema

La aplicación presenta una serie de cuadros de diálogo al usuario. Me gustaría dar al usuario la opción de reiniciar la aplicación completa a mediados de la aplicación. Por ejemplo, supongamos que la siguiente línea de la Línea 100 del código:

set buttonChoice to button returned of (display alert "Do you want to replace this entry?" as critical buttons {"Start over", "No", "Yes"})

   if buttonChoice is "Start over" then     
      <this is where I need your help, Ask Different>
   end if

Cuando digo "reiniciar" o "empezar de nuevo", me refiero a que quiero devolver al usuario el cuadro de diálogo inicial de la aplicación, es decir, la primera línea de código de la aplicación.

Se puede hacer esto usando AppleScript?

Si es necesario, esta es la ubicación del archivo de la aplicación:

/Aplicaciones/Mis Aplicaciones/Mi Registro.aplicación

2voto

user3439894 Puntos 5883

El siguiente código de ejemplo, supongamos que el Ejecutar AppleScript acción comienza con un on run comando sin ningún tipo de lista, por ejemplo {input, parameters} y, en consecuencia, termina la secuencia de comandos con end run:

on run

    (*
            This comment represents the e.g. previous 99 lines of code.
        *)

    set buttonChoice to button returned of (display alert "Do you want to replace this entry?" as critical buttons {"Start over", "No", "Yes"})
    try
        if buttonChoice is "Start over" then
            return on run
        end if
    end try

    (*
            This comment represents the rest of the code in the script.
        *)

end run

Nota que he probado en macOS Sierra 10.12 y mientras lo hace aparecer para volver a empezar, porque si usted pulse el botón de "Empezar de nuevo" botón se repite hasta que se seleccione otra opción, no estoy seguro de que esta es la mejor manera de implementar esto. Lo digo porque no sé la estructura y codificación del resto de la secuencia de comandos y que pueden hacer una diferencia, junto con el hecho de que durante las pruebas de otro código en cada lado de esta, yo era capaz de bloqueo de la aplicación, dependiendo de lo que estaba pasando si yo bucle más de una vez en este punto.

Con eso dicho, estoy ofreciendo este como algo para probar a fondo antes de implementarlo en el código final.

Yo sugeriría que sólo permite al usuario cancelar la aplicación con un mensaje para reiniciar manualmente pulsando la tecla-combo para activar el servicio que se inicia la aplicación a través de la implementación de un bucle como este.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X