AppleScript - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Hello World !

Dans AppleScript, le classique programme Hello World ! est écrit comme ceci :

      say "Hello World!"      

Le résultat du premier script est que votre ordinateur va dire hello world avec la voix par défaut. Afin de changer cette voix, allez dans l’onglet voix des ≪Préférences Système≫. Ou vous pouvez écrire le script comme ceci :

      say "Hello World!" using "Alex"      

”Alex” est juste un exemple ; il y a beaucoup d’autres voix.

Concept de base

AppleScript a été conçu pour offrir aux utilisateurs un mécanisme intelligent de contrôle d'applications, d'informations et de documents et ainsi mettre en œuvre une gestion automatisée des tâches. AppleScript est conçu comme une interface de script pour contrôler divers programmes. Automatiser des tâches avec AppleScript permet de réduire le temps qu'il faut pour accomplir ces tâches ainsi que de réduire les possibilités d'erreurs humaines.

Par exemple, un script pourrait ouvrir une photo dans une application d'édition photo, réduire sa résolution, ajouter une bordure, un titre, puis exporter la photo sur Internet et copier l'adresse de la photo dans un éditeur de texte, et enfin passer à la photo suivante de la série, et ainsi de suite à travers des centaines ou des milliers de photos, permettant la création d'une galerie photo sur Internet, le script pouvant utiliser un client FTP pour transférer les photos sur le site Web. Pour l'utilisateur, des centaines de mesures dans de multiples applications, utilisant des milliers de documents, ont été réduites à une seule : exécuter un script. Même si l'utilisateur ne devait utiliser un tel script qu'une seule fois, le temps de développement AppleScript peut être totalement exploité : dans la pratique, les scripts sont utilisés encore et encore, permettant un gain de temps considérable qui compense le temps de développement.

Un concept majeur de l'AppleScript est que les scripts manipulent les applications d'une manière fondamentalement différente de la façon dont les utilisateurs interagissent avec elles. L'utilisateur utilise l'application grâce à l'interface graphique, en choisissant des options dans les menus et en cliquant sur des boutons, alors que les scripts demandent et définissent les valeurs et les actions invoquées par l'application en mode interne. Ainsi, par exemple, plutôt que de simuler des frappes au clavier pour entrer du texte dans les champs d'une application, le script AppleScript utilise des commandes fixant directement les valeurs des champs souhaités de l'enregistrement, sans même que l'application n'affiche le dossier en cours d'actualisation. AppleScript a également la capacité de contrôler les applications non-scriptable grâce à l'interface graphique utilisateur (GUI) de scripts, ce qui permet au script de sélectionner des éléments du menu, cliquer sur les boutons, entrer du texte dans les champs de texte, et en général contrôler la plupart des interfaces de Mac OS X.


Étant donné que les applications sont toutes différentes les unes des autres, le nombre de commandes standards soutenues par toutes les applications est assez restreint. Chaque application scriptable publie les termes qu'elle comprend, sous la forme d'un dictionnaire d'évènements Apple (Apple Event), utilisé par AppleScript pour déterminer la validité des commandes qui peuvent être utilisées dans le contexte de chaque application.

La métaphore du langage naturel

Considérant que les "Apple Events" sont une méthode d'envoi de messages aux applications, AppleScript est un langage conçu pour envoyer des "Apple Events". Fidèle à sa tradition qui veut que Mac OS soit facile d'utilisation, AppleScript est conçu comme une métaphore de langue naturelle, tout comme l'environnement graphique utilisateur est conçu comme une métaphore du bureau. Le langage AppleScript est généralement lisible par tous ceux qui maîtrisent un minimum l'anglais et modifiable par la plupart de ceux-ci. Le langage est largement basé sur HyperTalk, la langage d'HyperCard, étendu pour ne plus se limiter au monde des cartes et piles d'HyperCard, mais pouvant s'adresser à théoriquement n'importe quel document. Pour atteindre cet objectif, l'équipe de développement a présenté l'"AppleScript AppleEvent Object Model" (AEOM), qui spécifie les commandes que chaque application est censée comprendre.

Le cœur d'AppleScript est formé de termes qui se présentent comme des noms et verbes qui peuvent être combinés. Par exemple, plutôt que d'avoir un terme pour imprimer une page, un pour imprimer un document ou imprimer une série de pages (imprimerPage, imprimerDocument, imprimerSerie), AppleScript utilise un seul verbe "print" qui pourra être combiné avec un objet, à savoir une page, un document ou une série de pages.

      print page 1             print document 2             print pages 1 thru 5 of document 2      

De manière générale, AEOM défini un certain nombre d'objets, tels que "document" ou "paragraphe", et les actions que l'on peut faire à leur égard, tels que "fermer" et "couper". Ce système permet également de se référer aux propriétés des objets. Par exemple, le "troisième paragraphe du document Bonjour", ou la "couleur du dernier mot de la fenêtre courante". AEOM utilise le dictionnaire des applications pour associer les Apple Events au langage AppleScript humainement compréhensible, permettant la traduction réciproque entre AppleScript compréhensible et le bytecode des Apple Events. Pour découvrir quels éléments sont scriptables pour une application donnée, il faut consulter son dictionnaire, accessible via l'article de menu "Ouvrir un dictionnaire" du menu "Fichier" de l'application "Éditeur de scripts".

Pour désigner quelle application est visée par le message, AppleScript utilise le verbe "tell" (dit à) :

      tell application "Microsoft Word"        quit      end tell      

Cette même demande peut s'écrire en une seule ligne en utilisant le verbe à l'infinitif :

      tell application "Microsoft Word" to quit      

Pour les évènements de la "Core suite" (activer, ouvrir, rouvrir, fermer, imprimer et quitter), l'application pour être l'objet indirecte de la demande  :

      quit application "Microsoft Word"      

Le concept d'une hiérarchie d'objets est visible dans ces blocs imbriqués :

      tell application "QuarkXPress"        tell document 1          tell page 2            tell text box 1              set word 5 to "Apple"            end tell          end tell        end tell      end tell      

Le concept de hiérarchie d'objets peut également être exprimé à l'aide de prépositions imbriquées :

      pixel 7 of row 3 of TIFF image "my bitmap"      

Hiérarchie qui dans un autre langage de programmation peut s'exprimer par l'appel séquentiel de fonctions :

      getTIFF("my bitmap").getRow(3).getPixel(7);      

AppleScript comprend les nombres ordinaux "le premier paragraphe", ainsi que les cardinaux "paragraphe 5". De même, les chiffres peuvent être mentionnés comme texte ou en nombres, les "cinq", "cinquième" et "5" sont compris. Ils sont appelés synonymes". Le mot anglais "the" peut également être utilisé dans un script afin d'améliorer la lisibilité sans avoir un impact sur la fonctionnalité du script.

Page générée en 0.099 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise