fbpx
Wikipedia

AppleScript

Applescript es un lenguaje de programación desarrollado por Apple y diseñado para su ejecución bajo los sistemas Mac OS. Genéricamente, Applescript es la palabra usada para designar el entorno de Scripts de Mac OS, pensado para operar en paralelo a la GUI.

AppleScript
Desarrollador(es)
Apple
http://developer.apple.com/applescript/
Información general
Extensiones comunes .scpt, .scptd, .applescript
Apareció en 1993
Última versión estable 2.2.1
Sistema de tipos dinámico
Influido por HyperCard
Sistema operativo System 7, Mac OS 8, Mac OS 9 y Mac OS X
Licencia licencia privativa

Historia

El proyecto Applescript fue una rama derivada del proyecto HyperCard. HyperCard contenía un lenguaje de programación basado en la lengua Inglesa llamado HyperTalk, que podía ser usado para incluir contenido lógico en un programa de HyperCard. Los ingenieros de Apple pensaron que podría diseñarse un lenguaje de scripts similar para ser usado con cualquier aplicación, y el proyecto Applescript ahí dio comienzo.

MacOS necesitó profundos cambios y mejoras para implementar Applescript. Muchos de estos cambios se publicaron con el lanzamiento del sistema 7, principalmente el concepto del Apple Event. Applescript compitió para atraer la atención de los desarrolladores con otras nuevas tecnologías que fueron lanzadas al mismo tiempo (Baloon help, Publish and Subscribe, etc.). Para algunas de las aplicaciones, Applescript fue la tecnología más difícil de implementar, requiriendo que se reescribieran grandes porciones de código de bajo nivel de las mismas, e incluso el propio marco de aplicación de Apple, MacApp, no soportó los Apple Events durante algún tiempo.

El lanzamiento fue en octubre de 1993 como parte del sistema 7.1.1 (La primera gran actualización del sistema 7). QuarkXPress (Versión 3.2) fue una de las primeras grandes aplicaciones que soportó Applescript, y como resultado, Applescript fue ampliamente adoptado en los segmentos de publicación del mercado de Apple. Aunque es discutible, la razón por la cual la plataforma Mac se mantuvo como líder de mercado tras la publicación de QuarkXPress y otras aplicaciones para la plataforma Microsoft Windows, fue que era la única que soportaba la automatización de flujos de trabajo complejos.

El paso hacia Mac OS X y su marco Cocoa ha significado una mejor implementación de Applescript. Las aplicaciones Cocoa ofrecen compatibilidad con Applescript de forma básica sin ningún esfuerzo por parte del desarrollador, y pueden alcanzar niveles profundos de compatibilidad con un poco de inversión de tiempo del desarrollador. AppleScript Studio, publicado con Mac OS X 10.2, permite a los usuarios programar aplicaciones enteras usando Applescript y objetos Cocoa.

Conceptos Básicos

Applescript fue concebido principalmente como un lenguaje de programación de scripts, ofreciendo a los usuarios una herramienta inteligente de control y permitiendo la comunicación entre diferentes aplicaciones.

Los sistemas anteriores al sistema 7 poseían un modelo rudimentario de Evento con el que se podían ejecutar un número fijado de eventos de bajo nivel, como "tecla pulsada" o "botón de mouse pulsado". Cada aplicación era responsable de la gestión y traducción a acciones de alto nivel que tuvieran algún sentido para el usuario, como "Ejecutar la opción de menú Pegar". En muchos casos, el mismo evento contenía tanto el concepto de acción (hacer clic) como las instrucciones para su ejecución (cuando se haga clic, ejecutar la opción Pegar).

La implementación de Applescript requirió al desarrollador la separación de la acción de la ejecución, un trabajo al que Apple se refirió como "Factoring". Los programadores fueron animados a escribir dos maneras distintas de manejo de los eventos, una para el manejo de eventos de bajo nivel (clics, pulsaciones de teclas, etc.) y otra para eventos de alto nivel (Apple Events).

Applescript en Mac OS X

En Mac OS X, Applescript es mucho más sencillo de implementar para los desarrolladores, particularmente para las aplicaciones desarrolladas en Cocoa. A diferencia de Mac OS donde los eventos son procesados por las aplicaciones, bajo Cocoa los eventos son transformados a una instrucción de alto nivel por el objeto NSApplication, y luego dirigido a un objetivo correcto. Esto significa que todas las aplicaciones de Cocoa llevan el "Factoring" hecho, el programador normalmente no escribe nada sobre el manejo del evento y solamente debe escribir cómo responderá la aplicación a los procesos que el evento solicite.

Otra importante ventaja es que los objetos Cocoa se nos presentan como estándares de manera que todos pueden acceder a ellos directamente. Bajo Cocoa, Applescript es mucho más "ligero"; el motor de scripts interpreta el script, traduce los nombres de objeto a su formato interno y luego los manda a la aplicación objetivo. los conceptos ttecnologics que son? son necesidad,clasificación ect.

La metáfora del "Lenguaje natural"

Mientras que los Apple events son una manera de enviar instrucciones a las aplicaciones, Applescript es un lenguaje específico para generar Apple events. Manteniendo la tradición de Mac OS de sencillez de uso, el lenguaje Applescript está diseñado basándose en la metáfora del "lenguaje natural", de la misma manera que GUI está apoyado en la metáfora de escritorio. Los programas de Applescript son generalmente leíbles y editables por cualquiera. Está basado en el lenguaje HyperTalk de HypeCard, y mejorado para que no solo pueda referirse al mundo de éste, sino que teóricamente puede referirse a cualquier documento. Para este fin, el equipo de Applescript introdujo el nuevo AppleEvent Object Model (Modelo de objetos AppleEvent o AEOM), el cual definía los objetos que cualquier aplicación conocía.

Generalmente AEOM definía un número determinado de objetos, como "documento" o "párrafo" y acciones que se podían hacer con ellos, como "cerrar" o "copiar". El sistema también definía las maneras de referirse a las propiedades de los objetos, de manera que se pudiera señalar al "tercer párrafo del documento 1", o al "color de la última palabra de la ventana activa". AEOM utiliza un diccionario para asociar los Apple Events a objetos comprensibles por las personas, permitiendo la traducción en ambos sentidos entre Applescript y los Apple Events. Para saber que elementos de una aplicación pueden ser objeto de scripts, se pueden consultar dichos diccionarios (en Xcode y el editor de scripts, por ejemplo).

Sintaxis

Hola Mundo

 
Resultado obtenido al ejecutar el programa.

El típico Hola Mundo se escribe en AppleScript con el siguiente código:

 display dialog "¡Hola mundo!" 

El resultado obtenido al ejecutar el script es una nueva ventana como la que aparece en el margen.

Comentarios

Hay dos tipos de comentarios en AppleScript:

  • La sintaxis (* cuerpo del comentario *) permite escribir comentario en múltiples líneas.
  • El indicador -- sirve para escribir comentarios de una sola línea.
--Este comentario sólo puede ocupar una línea #Este comentario sólo puede ocupar una línea (* En cambio con este, podemos usar múltiples líneas*) 

Adicionalmente también podemos iniciar el script con la línea #!/usr/bin/osascript para poder ejecutar el archivo de texto como un ejecutable de Unix.

Variables y tipos de datos

Las variables no necesitan ser declaradas y no están fuertemente tipadas. Para asignar a una variable un valor determinado se pueden usar dos métodos:

 set nombreDeLaVariable to valorDeLaVariable --o copy valorDeLaVariable to nombreDeLaVariable 

El nombre de las variables no es sensible a mayúsculas, por lo tanto mivariable y MiVariable son equivalentes. Los nombres de las variables pueden contener letras de la a a la z, excluyendo la ñ, números y el carácter _.

Los tipos básicos en AppleScript son:

  • Booleano
  • Número
  • Texto: Es una serie de caracteres Unicode
  • Registros: es un conjunto no ordenado de etiquetas con un valor asociado.
  • Lista: Es un conjunto ordenado de valores, no necesariamente del mismo tipo.

Ejemplos de estos tipos son:

--Booleanos: set verdad to true set falso to false set numero to 10 --numero es de tipo Número set texto to "Esto es un texto" set lista to {valor1, valor2, valor3} --Los distintos valores están separados por comas set registro to {etiqueta1 : valor1, etiqueta2 : valor2} -- La etiqueta es un identificador único que precede al valor 

Los tipos de datos se pueden cambiar para ello se usa:

valorDeTipo1 as tipoFinal 

El valor que devuelve esta expresión es la representación de tipo tipoFinal del valor valorDeTipo1. Por ejemplo:

2 as text -- devuelve "2" true as text -- devuelve "true"  "3.14" as number --devuelve 3.14 --También hay conversiones imposibles: "texto" as number --Provoca un error 

Funciones

Las declaraciones de funciones en AppleScript, llamadas handlers, pueden tener varias formas:

on nombreDeFuncion for parametric (*  cuerpo de la función  *) --si queremos que devuelva un valor: return resultado end nombreDeFuncion --Para llamar a la función se usa: nombreDeFuncion for unaVariable 

Se puede cambiar la palabra for por una de las siguientes : about, above, against, apart from, around, aside from, at, below, beneath, beside, between, by, for, from, instead of, into, on, onto, out of, over, since, thru (o through), under. Se pueden definer funciones con múltiples parámetros, usando para ello varias de las palabras listadas anteriormente, distintas para cada parámetro.

on fraccion for numerador over denominador return numerador / denominador end fraccion 

Las llamada a las funciones se puede hacer con los parámetros en distinto orden al declarado:

fraccion for 12 over 24 fraccion over 24 for 12 --Las dos llamadas son equivalentes y devuelven 0.5 

Las funciones se pueden declarar también con parámetros posicionales:

on nombreDeFuncion(parametro1, parametro2) --cuerpo de la función end nombreDeFuncion 

Para que la función no necesite parámetros se escriben solamente los paréntesis, sin nombres entre ellos. También se pueden definir las funciones cambiando el on por to

Funciones especiales

Cuando se guarda un script como aplicación hay 4 funciones que se pueden declarar para que esta tenga ciertos comportamientos:

Run

Es la función que se llama automáticamente al ejecutar un script o al lanzar un script guardado como una aplicación. Se puede definir de dos maneras:

  1. Si en el script hay escritas varios comandos, sin que estos estén dentro de declaraciones de funciones o de objetos script, la función run está ya declarada implícitamente.
  2. Se puede definir explícitamente como una función cualquiera, aunque entonces no puede haber comandos fuera de declaraciones de funciones o de objetos script.:
on run args --comandos a ejecutar end run 
El parámetro args es opcional y sirve para pasar parámetros al inicio, por ejemplo ejecutándolo desde la línea de comandos.

Open

El script recibe la orden de ejecutar la función open cuando el usuario arrastra archivos hasta el icono de la aplicación, pasándole como argumento una lista de alias a los archivos arrastrados.

on open nombresDeLosArchivos --comandos a ejecutar end open 

Idle

Al guardar como aplicación se puede seleccionar la opción Dejar abierto. Esto hace que cada 30 segundos, por defecto, se mande a la aplicación la orden de ejecutar la función idle. El tiempo que pasa entre las llamadas a la función se puede cambiar con el valor que devuelve la función: tiene que ser un entero y representa el tiempo en segundos entre llamadas, para el valor por defecto se devuelve 0.

on idle --comandos a ejecutar return numeroDeSegundos end idle 

Quit

La función quit es llamada cuando la aplicación recibe la orden de cerrarse. Si durante la ejecución aparece el comando continue quit se sale de la aplicación, pero, si se encuentra un return o la función acaba antes de encontrarlo, no se cierra la aplicación.

on quit --comandos a ejecutar if condicion then continue quit else return end if end quit 

En este caso solo se saldría de la aplicación si condicion es verdadero.

Estructuras

Condicionales

Al igual que en otros lenguajes de programación hay dos tipos de sentencias condicionales:

--Condicional simple: if condicion then --Sentencias a ejecutar end if --Condiciones compuestas: if condicion1 then --Cuerpo de la primera condición else if condicion2 then --Cuerpo de la segunda condición else --Cuerpo que se ejecuta si no se cumplen la condiciones anteriores end if 

Bucles

Hay varios tipos de bucles:

  • Bucles que no evalúan una condición:
--Bucle infinito: repeat --Sentencias a ejecutar end repeat --Bucle que se repite n veces: repeat n times --Sentencias a ejecutar end repeat 
  • Bucles que evalúan una condición:
--Bucle que se repite mientras la condición sea verdadera repeat while (condicion) --Sentencias a ejecutar end repeat --Bucle que se repite hasta que la condición pasa a ser verdadera repeat until (condicion) --Sentencias a ejecutar end repeat 
  • Bucles que iteran con una variable
--La variable toma valores enteros desde uno inicial hasta el final repeat with i from primerValor to valorFinal --Sentencias a ejecutar end repeat --La variable toma los valores de cada uno de los elementos de la lista repeat with i in lista --Sentencias a ejecutar end repeat 

Bloque tell

El bloque tell tiene dos variantes:

--Forma simple tell destino to accion_a_realizar --Forma compuesta tell destino --Sentencias a ejecutar end tell 

El bucle tell ejecuta las sentencias de acuerdo a las funciones y propiedades definidas en el objeto destino. Este último puede ser de tipo application, document o de tipo script, normalmente definido por el usuario, entre otros.

Por ejemplo se puede utilizar para abrir una nueva ventana del Finder:

tell application "Finder" make new Finder window end tell 

Tratamiento de errores

Cuando se produce un error durante la ejecución de un script se para el proceso. Para evitarlo y poder continuar con la ejecución se usa el siguiente código:

--Método simple: try --Sentencias que pueden provocar errores end try --Método compuesto: try --Sentencias que pueden provocar errores on error descripcion number n --Sentencias a ejecutar si aparece un error end try 

Cuando aparece un error se pasa a error un texto que describe el error,descripción, y un número que identifica el tipo de error, n. Por ejemplo al ejecutar el código:

try "test" as boolean on error descripcion number n display dialog descripcion display dialog n end try 

La descripción del error es "No es posible convertir "test" en tipo boolean." y el número de error es -1700

También se pueden usar sentencias para marcar un error, lo que para la ejecución del código a no ser que esté dentro de bloque try. La sintaxis es la siguiente:

error descripcionDelError number numeroDeError 

Software

Software para editar AppleScript

  • Xcode: Permite editar scripts como archivos de texto y tiene una plantilla definida para crear aplicaciones escritas en AppleScript.[1]
  • Editor AppleScript: viene incluido en Mac OS X y permite editar script y guardarlos como aplicaciones independientes, script compilados o ficheros de texto. También permite ver las funciones y propiedades definidas en las aplicaciones que se pueden controlar mediante AppleScript.
  • Existen varios comandos para la Terminal de Mac OS X que permiten ejecutar scripts:
    • osascript ejecuta un script:[2]
      osascript rutaAlScript 

      O una sentencia:
      osascript -e sentencia 
    • osacompile compila un script creando un archivo con extensión «.scpt»:[3]
       osacompile rutaAlScript 

Software controlable mediante AppleScript

La mayoría de aplicaciones desarrolladas por Apple pueden ser manejadas con AppleScript, por ejemplo:

  • Finder
  • iTunes
  • Xcode
  • Safari

Referencias

  1. «AppleScript en Xcode» (en inglés). Consultado el 8 de julio de 2012. 
  2. Apple Inc. «osascript(1) Mac OS X Manual Page» (en inglés). Consultado el 8 de julio de 2012. 
  3. Apple Inc. «osacompile(1) Mac OS X Manual Page» (en inglés). Consultado el 8 de julio de 2012. 

Bibliografía

Apple. «AppleScript Language Guide» (en inglés). Consultado el 6 de julio de 2012. 

  •   Datos: Q129137

applescript, applescript, lenguaje, programación, desarrollado, apple, diseñado, para, ejecución, bajo, sistemas, genéricamente, applescript, palabra, usada, para, designar, entorno, scripts, pensado, para, operar, paralelo, desarrollador, applehttp, developer. Applescript es un lenguaje de programacion desarrollado por Apple y disenado para su ejecucion bajo los sistemas Mac OS Genericamente Applescript es la palabra usada para designar el entorno de Scripts de Mac OS pensado para operar en paralelo a la GUI AppleScriptDesarrollador es Applehttp developer apple com applescript Informacion generalExtensiones comunes scpt scptd applescriptAparecio en1993Ultima version estable2 2 1Sistema de tiposdinamicoInfluido porHyperCardSistema operativoSystem 7 Mac OS 8 Mac OS 9 y Mac OS XLicencialicencia privativa editar datos en Wikidata Indice 1 Historia 2 Conceptos Basicos 3 Applescript en Mac OS X 4 La metafora del Lenguaje natural 5 Sintaxis 5 1 Hola Mundo 5 2 Comentarios 5 3 Variables y tipos de datos 5 4 Funciones 5 4 1 Funciones especiales 5 5 Estructuras 5 5 1 Condicionales 5 5 2 Bucles 5 5 3 Bloque tell 5 6 Tratamiento de errores 6 Software 6 1 Software para editar AppleScript 6 2 Software controlable mediante AppleScript 7 Referencias 8 BibliografiaHistoria EditarEl proyecto Applescript fue una rama derivada del proyecto HyperCard HyperCard contenia un lenguaje de programacion basado en la lengua Inglesa llamado HyperTalk que podia ser usado para incluir contenido logico en un programa de HyperCard Los ingenieros de Apple pensaron que podria disenarse un lenguaje de scripts similar para ser usado con cualquier aplicacion y el proyecto Applescript ahi dio comienzo MacOS necesito profundos cambios y mejoras para implementar Applescript Muchos de estos cambios se publicaron con el lanzamiento del sistema 7 principalmente el concepto del Apple Event Applescript compitio para atraer la atencion de los desarrolladores con otras nuevas tecnologias que fueron lanzadas al mismo tiempo Baloon help Publish and Subscribe etc Para algunas de las aplicaciones Applescript fue la tecnologia mas dificil de implementar requiriendo que se reescribieran grandes porciones de codigo de bajo nivel de las mismas e incluso el propio marco de aplicacion de Apple MacApp no soporto los Apple Events durante algun tiempo El lanzamiento fue en octubre de 1993 como parte del sistema 7 1 1 La primera gran actualizacion del sistema 7 QuarkXPress Version 3 2 fue una de las primeras grandes aplicaciones que soporto Applescript y como resultado Applescript fue ampliamente adoptado en los segmentos de publicacion del mercado de Apple Aunque es discutible la razon por la cual la plataforma Mac se mantuvo como lider de mercado tras la publicacion de QuarkXPress y otras aplicaciones para la plataforma Microsoft Windows fue que era la unica que soportaba la automatizacion de flujos de trabajo complejos El paso hacia Mac OS X y su marco Cocoa ha significado una mejor implementacion de Applescript Las aplicaciones Cocoa ofrecen compatibilidad con Applescript de forma basica sin ningun esfuerzo por parte del desarrollador y pueden alcanzar niveles profundos de compatibilidad con un poco de inversion de tiempo del desarrollador AppleScript Studio publicado con Mac OS X 10 2 permite a los usuarios programar aplicaciones enteras usando Applescript y objetos Cocoa Conceptos Basicos EditarApplescript fue concebido principalmente como un lenguaje de programacion de scripts ofreciendo a los usuarios una herramienta inteligente de control y permitiendo la comunicacion entre diferentes aplicaciones Los sistemas anteriores al sistema 7 poseian un modelo rudimentario de Evento con el que se podian ejecutar un numero fijado de eventos de bajo nivel como tecla pulsada o boton de mouse pulsado Cada aplicacion era responsable de la gestion y traduccion a acciones de alto nivel que tuvieran algun sentido para el usuario como Ejecutar la opcion de menu Pegar En muchos casos el mismo evento contenia tanto el concepto de accion hacer clic como las instrucciones para su ejecucion cuando se haga clic ejecutar la opcion Pegar La implementacion de Applescript requirio al desarrollador la separacion de la accion de la ejecucion un trabajo al que Apple se refirio como Factoring Los programadores fueron animados a escribir dos maneras distintas de manejo de los eventos una para el manejo de eventos de bajo nivel clics pulsaciones de teclas etc y otra para eventos de alto nivel Apple Events Applescript en Mac OS X EditarEn Mac OS X Applescript es mucho mas sencillo de implementar para los desarrolladores particularmente para las aplicaciones desarrolladas en Cocoa A diferencia de Mac OS donde los eventos son procesados por las aplicaciones bajo Cocoa los eventos son transformados a una instruccion de alto nivel por el objeto NSApplication y luego dirigido a un objetivo correcto Esto significa que todas las aplicaciones de Cocoa llevan el Factoring hecho el programador normalmente no escribe nada sobre el manejo del evento y solamente debe escribir como respondera la aplicacion a los procesos que el evento solicite Otra importante ventaja es que los objetos Cocoa se nos presentan como estandares de manera que todos pueden acceder a ellos directamente Bajo Cocoa Applescript es mucho mas ligero el motor de scripts interpreta el script traduce los nombres de objeto a su formato interno y luego los manda a la aplicacion objetivo los conceptos ttecnologics que son son necesidad clasificacion ect La metafora del Lenguaje natural EditarMientras que los Apple events son una manera de enviar instrucciones a las aplicaciones Applescript es un lenguaje especifico para generar Apple events Manteniendo la tradicion de Mac OS de sencillez de uso el lenguaje Applescript esta disenado basandose en la metafora del lenguaje natural de la misma manera que GUI esta apoyado en la metafora de escritorio Los programas de Applescript son generalmente leibles y editables por cualquiera Esta basado en el lenguaje HyperTalk de HypeCard y mejorado para que no solo pueda referirse al mundo de este sino que teoricamente puede referirse a cualquier documento Para este fin el equipo de Applescript introdujo el nuevo AppleEvent Object Model Modelo de objetos AppleEvent o AEOM el cual definia los objetos que cualquier aplicacion conocia Generalmente AEOM definia un numero determinado de objetos como documento o parrafo y acciones que se podian hacer con ellos como cerrar o copiar El sistema tambien definia las maneras de referirse a las propiedades de los objetos de manera que se pudiera senalar al tercer parrafo del documento 1 o al color de la ultima palabra de la ventana activa AEOM utiliza un diccionario para asociar los Apple Events a objetos comprensibles por las personas permitiendo la traduccion en ambos sentidos entre Applescript y los Apple Events Para saber que elementos de una aplicacion pueden ser objeto de scripts se pueden consultar dichos diccionarios en Xcode y el editor de scripts por ejemplo Sintaxis EditarHola Mundo Editar Resultado obtenido al ejecutar el programa El tipico Hola Mundo se escribe en AppleScript con el siguiente codigo display dialog Hola mundo El resultado obtenido al ejecutar el script es una nueva ventana como la que aparece en el margen Comentarios Editar Hay dos tipos de comentarios en AppleScript La sintaxis cuerpo del comentario permite escribir comentario en multiples lineas El indicador sirve para escribir comentarios de una sola linea Este comentario solo puede ocupar una linea Este comentario solo puede ocupar una linea En cambio con este podemos usar multiples lineas Adicionalmente tambien podemos iniciar el script con la linea usr bin osascript para poder ejecutar el archivo de texto como un ejecutable de Unix Variables y tipos de datos Editar Las variables no necesitan ser declaradas y no estan fuertemente tipadas Para asignar a una variable un valor determinado se pueden usar dos metodos set nombreDeLaVariable to valorDeLaVariable o copy valorDeLaVariable to nombreDeLaVariable El nombre de las variables no es sensible a mayusculas por lo tanto mivariable y MiVariable son equivalentes Los nombres de las variables pueden contener letras de la a a la z excluyendo la n numeros y el caracter Los tipos basicos en AppleScript son Booleano Numero Texto Es una serie de caracteres Unicode Registros es un conjunto no ordenado de etiquetas con un valor asociado Lista Es un conjunto ordenado de valores no necesariamente del mismo tipo Ejemplos de estos tipos son Booleanos set verdad to true set falso to false set numero to 10 numero es de tipo Numero set texto to Esto es un texto set lista to valor1 valor2 valor3 Los distintos valores estan separados por comas set registro to etiqueta1 valor1 etiqueta2 valor2 La etiqueta es un identificador unico que precede al valor Los tipos de datos se pueden cambiar para ello se usa valorDeTipo1 as tipoFinal El valor que devuelve esta expresion es la representacion de tipo tipoFinal del valor valorDeTipo1 Por ejemplo 2 as text devuelve 2 true as text devuelve true 3 14 as number devuelve 3 14 Tambien hay conversiones imposibles texto as number Provoca un error Funciones Editar Las declaraciones de funciones en AppleScript llamadas handlers pueden tener varias formas on nombreDeFuncion for parametric cuerpo de la funcion si queremos que devuelva un valor return resultado end nombreDeFuncion Para llamar a la funcion se usa nombreDeFuncion for unaVariable Se puede cambiar la palabra for por una de las siguientes about above against apart from around aside from at below beneath beside between by for from instead of into on onto out of over since thru o through under Se pueden definer funciones con multiples parametros usando para ello varias de las palabras listadas anteriormente distintas para cada parametro on fraccion for numerador over denominador return numerador denominador end fraccion Las llamada a las funciones se puede hacer con los parametros en distinto orden al declarado fraccion for 12 over 24 fraccion over 24 for 12 Las dos llamadas son equivalentes y devuelven 0 5 Las funciones se pueden declarar tambien con parametros posicionales on nombreDeFuncion parametro1 parametro2 cuerpo de la funcion end nombreDeFuncion Para que la funcion no necesite parametros se escriben solamente los parentesis sin nombres entre ellos Tambien se pueden definir las funciones cambiando el on por to Funciones especiales Editar Cuando se guarda un script como aplicacion hay 4 funciones que se pueden declarar para que esta tenga ciertos comportamientos b Run b Es la funcion que se llama automaticamente al ejecutar un script o al lanzar un script guardado como una aplicacion Se puede definir de dos maneras Si en el script hay escritas varios comandos sin que estos esten dentro de declaraciones de funciones o de objetos script la funcion run esta ya declarada implicitamente Se puede definir explicitamente como una funcion cualquiera aunque entonces no puede haber comandos fuera de declaraciones de funciones o de objetos script on run args comandos a ejecutar end run El parametro args es opcional y sirve para pasar parametros al inicio por ejemplo ejecutandolo desde la linea de comandos b Open b El script recibe la orden de ejecutar la funcion open cuando el usuario arrastra archivos hasta el icono de la aplicacion pasandole como argumento una lista de alias a los archivos arrastrados on open nombresDeLosArchivos comandos a ejecutar end open b Idle b Al guardar como aplicacion se puede seleccionar la opcion Dejar abierto Esto hace que cada 30 segundos por defecto se mande a la aplicacion la orden de ejecutar la funcion idle El tiempo que pasa entre las llamadas a la funcion se puede cambiar con el valor que devuelve la funcion tiene que ser un entero y representa el tiempo en segundos entre llamadas para el valor por defecto se devuelve 0 on idle comandos a ejecutar return numeroDeSegundos end idle b Quit b La funcion quit es llamada cuando la aplicacion recibe la orden de cerrarse Si durante la ejecucion aparece el comando continue quit se sale de la aplicacion pero si se encuentra un return o la funcion acaba antes de encontrarlo no se cierra la aplicacion on quit comandos a ejecutar if condicion then continue quit else return end if end quit En este caso solo se saldria de la aplicacion si condicion es verdadero Estructuras Editar Condicionales Editar Al igual que en otros lenguajes de programacion hay dos tipos de sentencias condicionales Condicional simple if condicion then Sentencias a ejecutar end if Condiciones compuestas if condicion1 then Cuerpo de la primera condicion else if condicion2 then Cuerpo de la segunda condicion else Cuerpo que se ejecuta si no se cumplen la condiciones anteriores end if Bucles Editar Hay varios tipos de bucles Bucles que no evaluan una condicion Bucle infinito repeat Sentencias a ejecutar end repeat Bucle que se repite n veces repeat n times Sentencias a ejecutar end repeat Bucles que evaluan una condicion Bucle que se repite mientras la condicion sea verdadera repeat while condicion Sentencias a ejecutar end repeat Bucle que se repite hasta que la condicion pasa a ser verdadera repeat until condicion Sentencias a ejecutar end repeat Bucles que iteran con una variable La variable toma valores enteros desde uno inicial hasta el final repeat with i from primerValor to valorFinal Sentencias a ejecutar end repeat La variable toma los valores de cada uno de los elementos de la lista repeat with i in lista Sentencias a ejecutar end repeat Bloque tell Editar El bloque tell tiene dos variantes Forma simple tell destino to accion a realizar Forma compuesta tell destino Sentencias a ejecutar end tell El bucle tell ejecuta las sentencias de acuerdo a las funciones y propiedades definidas en el objeto destino Este ultimo puede ser de tipo application document o de tipo script normalmente definido por el usuario entre otros Por ejemplo se puede utilizar para abrir una nueva ventana del Finder tell application Finder make new Finder window end tell Tratamiento de errores Editar Cuando se produce un error durante la ejecucion de un script se para el proceso Para evitarlo y poder continuar con la ejecucion se usa el siguiente codigo Metodo simple try Sentencias que pueden provocar errores end try Metodo compuesto try Sentencias que pueden provocar errores on error descripcion number n Sentencias a ejecutar si aparece un error end try Cuando aparece un error se pasa a error un texto que describe el error descripcion y un numero que identifica el tipo de error n Por ejemplo al ejecutar el codigo try test as boolean on error descripcion number n display dialog descripcion display dialog n end try La descripcion del error es No es posible convertir test en tipo boolean y el numero de error es 1700Tambien se pueden usar sentencias para marcar un error lo que para la ejecucion del codigo a no ser que este dentro de bloque try La sintaxis es la siguiente error descripcionDelError number numeroDeErrorSoftware EditarSoftware para editar AppleScript Editar Xcode Permite editar scripts como archivos de texto y tiene una plantilla definida para crear aplicaciones escritas en AppleScript 1 Editor AppleScript viene incluido en Mac OS X y permite editar script y guardarlos como aplicaciones independientes script compilados o ficheros de texto Tambien permite ver las funciones y propiedades definidas en las aplicaciones que se pueden controlar mediante AppleScript Existen varios comandos para la Terminal de Mac OS X que permiten ejecutar scripts osascript ejecuta un script 2 osascript rutaAlScript O una sentencia osascript e sentencia osacompile compila un script creando un archivo con extension scpt 3 osacompile rutaAlScriptSoftware controlable mediante AppleScript Editar Categoria principal Software controlable mediante AppleScript La mayoria de aplicaciones desarrolladas por Apple pueden ser manejadas con AppleScript por ejemplo Finder iTunes Xcode SafariReferencias Editar AppleScript en Xcode en ingles Consultado el 8 de julio de 2012 Apple Inc osascript 1 Mac OS X Manual Page en ingles Consultado el 8 de julio de 2012 Apple Inc osacompile 1 Mac OS X Manual Page en ingles Consultado el 8 de julio de 2012 Bibliografia EditarApple AppleScript Language Guide en ingles Consultado el 6 de julio de 2012 Datos Q129137 Obtenido de https es wikipedia org w index php title AppleScript amp oldid 125315727, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos