Introduction
Total Page:16
File Type:pdf, Size:1020Kb
Introduction Apple Script est le langage de script fourni avec le système d’exploitation des Mac depuis la version 7 du système (1993). Il permet aux développeurs d’applications de rendre ces dernières « scriptables » (ou « pilotables ») et aux utilisateurs de contrôler par le moyen de scripts leur ordinateur et les applications qu’il exécute. Il peut s’agir de scripts élémentaires de quelques lignes automatisant une manipulation de fi chiers dans le Finder comme de scripts plus ambitieux mettant en œuvre algorithmes, données, interactions avec l’utilisateur et bien sûr applications scrip- tables. Info Apple Script étant le langage de script natif du système d’exploi- tation, cela lui donne accès à la majorité des applications Mac. Si votre application cible n’est pas scriptable via Apple Script, il vous reste une alternative : • utiliser les fonctions de scriptage GUI (voir Annexe B) ; • utiliser Automator , en espérant qu’il prenne bien en compte votre application ; • trouver une application équivalente et scriptable… Book_AppleScript.indb 1 3/09/09 14:23:44 2 AppleScript Apple Script permet de réaliser tout ce qu’un utilisateur peut accomplir avec un clavier et une souris. Mais, comme tout langage de script, il offre de nombreux avantages comparé à un opérateur humain : • Il accomplit tout travail répétitif, qu’il soit simple ou complexe, sans rechigner… • Il permet d’étendre les fonctionnalités d’une application ou d’en adapter le comportement aux besoins propres de l’utilisateur. Même si les applications modernes sui- vent une pente naturelle conduisant à les enrichir en fonctionnalités, il est impossible de leur faire couvrir la totalité des besoins et situations de leurs utilisateurs – et ce serait au détriment de leur facilité d’apprentissage et de leur taille… De ce fait, un langage de script sera toujours utile à certaines catégories d’utilisateurs. • Il automatise des enchaînements de tâches complexes, nécessitant des interactions entre différentes applications. À ce titre, il sert de « glue » logicielle entre applications et/ou système d’exploitation, étendant le concept du pipe issu du monde Unix, lequel permet d’enchaîner plusieurs scripts, les données produites par un script alimentant l’entrée du suivant. • Il peut agir en l’absence de l’utilisateur, selon un planning préétabli ou à la survenue d’événements particuliers. Book_AppleScript.indb 2 3/09/09 14:23:45 Introduction 3 Info Ces différents cas d’emploi d’AppleScript peuvent également être classés selon une autre typologie : • On parle d’automatisation lorsque le besoin est de contrôler une ou plusieurs applications en vue de la réalisation auto- matique d’une séquence d’actions. Dans ce cas, le script est le chef d’orchestre qui dirige la ou les applications. Tous les scripts visant à appliquer un traitement particulier sur un ensemble de données appartiennent à cette catégorie (tels par exemple les scripts de traitement de fi chiers image). • La personnalisation (ou customisation en bon franglais) permet au comportement d’une application d’être modifi é, généralement en mieux, en lui adjoignant des scripts appe- lés depuis l’application elle-même. C’est alors l’application qui déclenche l’exécution des scripts à la survenue de certains événements spécifi ques (par exemple le Finder, via le concept d’action de dossier), ou l’utilisateur lui-même, via un menu intégré dans l’application (tel celui d’iTunes). Au chapitre de ses faiblesses, notons sa lenteur, le fait que certaines applications ne sont pas scriptables et, bien sûr, qu’il ne fonctionne que sur les ordinateurs Apple… Mais cette évidente caractéristique a aussi un avantage majeur : une fois Apple Script connu et maîtrisé, il permet de scrip- ter la quasi-totalité des applications disponibles, ce qui n’est pas le cas pour d’autres systèmes, par exemple Windows, où il faudra apprendre un langage particulier (tantôt JavaScript, tantôt VBA), voire un jeu de macros propriétaires, pour pouvoir piloter telle ou telle applica- tion. Book_AppleScript.indb 3 3/09/09 14:23:46 4 AppleScript Info Mac OS X Leopard (10.5) inclut Apple Script 2.0 , une mise à jour importante du langage proposant notamment le support d’Uni- code, une évolution des bibliothèques de pilotage, la possibilité de scripter de nouveaux panneaux des Préférences Système et une implémentation plus fi able des actions de dossier. La page http://developer.apple.com/releasenotes/Apple Script/RN-Apple- Script/index.html détaille cette nouvelle version d’AppleScript. Comment Apple Script fonctionne Tout script Apple Script est constitué d’une suite séquen- tielle d’instructions que l’on peut classer schématiquement en deux catégories : • Des instructions semblables à celles des autres langages de programmation impératifs (instructions de calcul, de contrôle de fl ot, etc.). • Des commandes destinées à piloter les applications cibles. Ce sont elles qui le distinguent des autres langa- ges de script et lui donnent toute sa puissance. Info Historiquement, un langage de script permet de manipuler les fonctionnalités d’un système informatique, tant matérielles que logicielles. Également appelé « langage de commande », il donne accès aux commandes du système d’exploitation, dont il permet d’enchaîner automatiquement l’exécution. Ce gain de temps, comparé à la saisie des commandes par un opérateur humain, est également accru par la nature interprétée des langages de script, qui évite le cycle compilation-édition de lien-exécution. Aujourd’hui, on parle abusivement de langage de script dès lors qu’un langage de programmation est interprété. Book_AppleScript.indb 4 3/09/09 14:23:46 Comment AppleScript fonctionne 5 Selon cette défi nition (tout langage permettant de manipuler les fonctionnalités d’un système informatique), AppleScript est un véritable langage de script, à la différence de JavaScript ou de VBA (Visual Basic for Applications) , par exemple, dont la gamme des applications scriptables est plus limitée (il existe cependant une version de JavaScript permettant de scripter le Mac et ses appli- cations : JavaScript OSA ; voir www.latenightsw.com). Ce principe permet de fournir à l’utilisateur-programmeur un langage formé d’une base stable constituée d’un noyau d’instructions facile à apprendre et à maîtriser, base qui est enrichie de commandes de pilotage propres à chaque appli- cation. Ainsi, il est garanti qu’Apple Script peut être utilisé pour toutes les applications Mac, existantes et à venir, et que seuls le vocabulaire et les concepts d’une nouvelle applica- tion que l’on souhaite piloter sont à découvrir. Info Un autre avantage de cette base syntaxique formalisée dans le noyau du langage lui-même est que cela facilite la mise en place d’une terminologie uniforme pour nommer les différentes enti- tés informationnelles manipulées par l’ordinateur, à travers tant son système d’exploitation que ses applications. Qu’il s’agisse d’ouvrir une fenêtre du Finder ou un document Word, de créer un dossier sur le disque dur ou un nouvel album dans iTunes, la commande sera fondée sur la même forme syntaxique. Cette caractéristique d’« orthogonalité » facilite gran dement l’utilisa- tion d’Apple Script dans différents contextes, même si l’on verra qu’elle a ses propres limites… Lorsque Apple Script rencontre dans un script une telle commande de pilotage d’application, il l’envoie à l’applica- tion concernée par le moyen d’un mécanisme de commu- nication nommé « Apple Events » qui permet de coder tant la commande que ses éventuels paramètres. L’application Book_AppleScript.indb 5 3/09/09 14:23:47 6 AppleScript exécute la commande et renvoie éventuellement au script un résultat, toujours via Apple Events. Apple Script possède certaines caractéristiques d’un lan- gage orienté objet, puisqu’il utilise les concepts de classe, cible, message, etc. (tous ces concepts sont précisés dans la section « Objets » du Chapitre 2) : • Les commandes (ou « méthodes » dans la terminologie de l’orienté objet) sont les actions à appliquer aux don- nées, lesquelles modélisent tant les entités manipulées par le système lui-même (fi chiers, dossiers, fenêtres du Finder, etc.) que les documents gérés par les applica- tions qu’il héberge (images, textes, pages web, etc.). • Ces données sont modélisées en tant que classes, sous la forme d’une hiérarchie de classes héritant les unes des autres de caractéristiques propres, défi nies par des pro- priétés et éléments (ou « attributs »). • Les données manipulées par les scripts sont des objets (ou « instances ») des classes applicatives ou des classes système. • La terminologie utilisée par une application (ou par un composant du système lui-même) pour nommer les entités qu’elle gère (classes, propriétés, etc.) et les actions que le programmeur peut leur appliquer (commandes) est stockée dans un dictionnaire de pilotage. Toutes ces caractéristiques sont proposées sous la forme d’un langage de script interprété doté d’une syntaxe de type langage pseudo-naturel. Apple Script est donc particu- lièrement adapté aux programmeurs occasionnels ou débutants, qui pourront agréablement s’initier à la pro- grammation en faisant leurs premières armes dans un envi- ronnement familier, celui constitué des documents et applications utilisés au quotidien. Book_AppleScript.indb 6 3/09/09 14:23:48 Comment utiliser AppleScript 7 Comment utiliser Apple Script Apple Script, de par sa versatilité, offre un large éventail de cas d’emploi : • Script de pilotage d’applications . Il s’agit de l’utili- sation classique d’un langage de script, qui consiste à piloter une (ou plusieurs) applications en lui faisant exécuter des actions. L’application cible peut être le sys- tème d’exploitation lui-même (à travers ses diverses composantes, dont le Finder) ou une application tierce (d’origine Apple ou non). • Script applicatif interne. Certaines applications permet- tent l’utilisation d’Apple Script comme langage de pro- grammation. Elles autorisent l’appel de scripts Apple Script depuis leur propre environnement.