AppleScript: “Dígame que deje de fumar”: ¿condicional en el ambiente?

1

La declaración de "Dígame que salga" es muy útil cuando ejecuta una aplicación AppleScript como un applet o desde el menú de secuencias de comandos, sin embargo, al desarrollar o depurar secuencias de comandos en el Editor de secuencias de comandos es muy molesto, ya que se cierra la Edición de secuencias de comandos en lugar de simplemente la ejecución del script.

Dos preguntas:

  1. ¿Es posible desde dentro de un script verificar en qué entorno se ejecuta, algo como

    si el entorno es un applet, entonces dime que salga de lo contrario, se mostrará la notificación "Hecho"

  2. ¿Cómo salgo solo de la secuencia de comandos cuando se ejecuta en el Editor de secuencias de comandos? Es decir, el mismo resultado que cuando hace clic en el botón de parada en la barra de herramientas.

pregunta d-b 04.10.2017 - 13:48

1 respuesta

2

Solicitud actual

Puede obtener el nombre de la aplicación actual. Si el nombre es Script Editor , entonces su AppleScript se está ejecutando dentro del editor:

display dialog (name of current application as text)

Detectando el entorno

Alternativamente, su AppleScript puede acceder a las variables de entorno a través del comando atributo del sistema . Debe poder determinar su proceso a través de esta información. Para ver el entorno de ruta HOME , use:

display dialog (system attribute "HOME")

Detener un AppleScript

Para detener el script, use el comando return . En el fragmento de código de AppleScript a continuación, el cuadro de diálogo nunca se muestra:

return
display dialog "Hello World"

return sale de la rutina actual dentro de AppleScript; al igual que el retorno en otros idiomas, como c . Llamado dentro del contexto de la rutina principal de AppleScript, no hay nada a lo que volver, por lo que el script termina.

Compare esto con tell me to quit , donde el fragmento hace que se emita un AppleEvent para salir del proceso actual.

    
respondido por el Graham Miln 04.10.2017 - 13:59

Lea otras preguntas en las etiquetas