Guide du débutant ultime pour AppleScript

Il s'agit du premier article d'une nouvelle série qui revisite certains des articles favoris de nos lecteurs préférés du passé qui contiennent encore des informations impressionnantes et pertinentes qui pourraient vous être utiles. Ce poste a été publié le 7 juillet 2009..

La meilleure partie de AppleScript est qu'il n'est pas nécessaire d'être un programmeur de génie pour l'utiliser. En fait, vous n’avez aucune expérience en programmation. Cet article vous montrera comment écrire un AppleScript pour presque toutes les applications à l'aide des instructions simples cachées dans le cadre de chaque application. Intrigué? Continuer à lire!


Qu'est-ce que AppleScript??

AppleScript est un puissant langage de script intégré à OS X. AppleScript est principalement utilisé pour l’automatisation de tâches qui sont normalement répétitives et prennent beaucoup de temps. Par exemple, en tant que pigiste, je déteste créer des factures chaque semaine pour mes différents clients. Pour résoudre ce problème, j'ai écrit un AppleScript qui lit les heures de connexion à iCal, crée une facture dans Microsoft Excel en fonction de ces heures et envoie les factures à mes clients. Tous avec le clic d'un bouton!


La fenêtre principale

Mise en route: le bloc Tell

Pour créer un AppleScript, ouvrez l'application "Script Editor" située dans le dossier AppleScript du dossier Applications. Vous devriez voir une simple fenêtre contenant un grand champ de texte avec une bande de boutons en haut. Dans le champ de texte, tapez le code suivant:

[applescript]
dire à l'application "Finder"

afficher la boîte de dialogue "Hello World"

fin dire
[/ applescript]

AppleScript tente d’utiliser le plus souvent possible l’anglais clair pour simplifier au maximum le codage. La plupart des commandes dans AppleScript sont situées dans un "tell block". Cela s'appelle un "bloc de signalisation" parce que vous "dites" à une application donnée ce que vous voulez qu'elle fasse. Par exemple, le code ci-dessus indique au Finder d'afficher une fenêtre de dialogue contenant les mots "Hello World". Une fois que vous avez terminé avec une commande ou une chaîne de commandes pour une application donnée, vous terminez le bloc avec "end tell".

Rappelez-vous toujours de terminer vos blocs tell correctement ou le code ne sera pas compilé!

Après avoir entré le code ci-dessus, cliquez sur l’icône marteau "Compiler". Si votre syntaxe est correcte, votre code sera automatiquement formaté et colorié. Si vous avez commis une erreur, l'éditeur de script met en surbrillance la zone problématique et vous indique ce qui, selon lui, pourrait s'être mal passé. Voici une référence rapide aux différentes couleurs que vous verrez dans votre code compilé (présent dans Script Editor> Préférences)..


Guide de couleur

Une fois votre code compilé, cliquez sur le bouton "Exécuter". Vous devriez voir la boîte de dialogue suivante:


Bonjour le monde

Maintenant, cliquez sur le bouton "OK" et regardez au bas de la fenêtre de votre éditeur de script. Lorsque vous exécutez un script, l'éditeur de script vous indique le résultat ou ce qui a été "renvoyé". Dans ce cas, cela vous indique que le bouton "OK" a été cliqué.


Le retour OK

Déclaration de variables

Les variables sont essentiellement les mêmes dans tous les langages de programmation. Ils fournissent un moyen facile d’accéder à de nombreuses informations et de les manipuler dans un extrait de code compact. Créer ou "déclarer" des variables est différent pour chaque langue. Dans AppleScript, vous déclarez les variables comme suit:

[applescript]
paramétrez theString sur "Hello World"

dire à l'application "Finder"

afficher la boîte de dialogue theString

fin dire
[/ applescript]

Il y a plusieurs choses à noter à propos de l'exemple précédent. Tout d'abord, notez que les variables sont déclarées à l'aide des commandes "set" et "to". En faisant cela, vous définissez le nom de votre variable, dans ce cas "theString", pour qu’elle corresponde à quelque chose, dans ce cas le texte "Hello World". De nombreux langages de programmation exigent que vous indiquiez le type de variable que vous voulez dans la déclaration (entier, virgule flottante, texte, etc.). AppleScript est cependant assez intelligent pour travailler avec vos variables sans aucune instruction sur le format..

Notez également comment j'ai tapé mon nom de variable. Vous ne pouvez pas avoir d'espaces dans un nom de variable, il est donc recommandé d'utiliser la méthode Camel Case (theString) ou la méthode de soulignement (the_string). Peu importe la méthode que vous choisissez, assurez-vous que votre code est cohérent. C'est aussi une bonne idée de donner à toutes vos variables des noms significatifs. Lorsque vous recherchez le code d'un autre programmeur, il peut être gênant de voir des noms de variables comme "myVariable" qui ne donnent aucune indication sur ce qu'ils sont ou sur quoi ils seront utilisés..

Enfin, remarquez que maintenant que j'ai placé le texte "Hello World" dans une variable, je peux appeler cette variable encore et encore dans tout mon code. Ensuite, si je décide plus tard de changer le texte "Hello World" en "Good Morning Dave", il me suffit de changer le texte sur la ligne où j'ai déclaré la variable..


Travailler avec des variables

Vous pouvez faire toutes sortes de choses folles avec des variables, mais comme il ne s'agit que d'une brève introduction à AppleScript, je vais vous en montrer quelques-unes. Tapez le code suivant:

[applescript]
--Variables entières
définir le premier numéro sur 3
définir le theSecondNumber à 2

--Opérations variables
définir la réponse à (theFirstNumber + theSecondNumber)
définir la réponse sur (la réponse + 1)

--Variables de chaîne
mettre theString à "3 + 2 + 1 ="

--Boîte de dialogue d'affichage
dire à l'application "Finder"

afficher la boîte de dialogue theString & theAnswer

fin dire
[/ applescript]

Vous pouvez compiler votre code rapidement en appuyant sur la touche "Entrée" (pas la touche Retour). Il est situé sur le pavé numérique à dix touches sur les ordinateurs de bureau et à côté de la touche "Commande" à droite de la barre d'espace sur les ordinateurs portables.

Au fur et à mesure que votre script devient plus complexe, un peu d'organisation est en ordre. En tapant deux tirets "-" avant une ligne de texte, vous pouvez insérer un commentaire. Utilisez des commentaires pour séparer et décrire vos sections de code pour faciliter la navigation. Dans cet exemple, j'ai créé une variable chaîne (texte uniquement) et quelques variables entières. Notez que vous pouvez effectuer des opérations mathématiques sur des variables. Ici, j'ai défini "theFirstNumber" sur trois et "theSecondNumber" sur deux, puis les a ajoutés dans "theAnswer".

Notez également que vous pouvez modifier une variable après sa déclaration. Immédiatement après avoir défini "theAnswer" sur la somme de "theFirstNumber" et "theSecondNumber" (résultant en 5), j'ai changé la valeur de "theAnswer" en lui ajoutant un (aboutissant à 6). Si vous exécutez ce script, vous devriez voir le résultat suivant:


Quelques mathématiques de base

Encore une fois, cela ne fait qu'effleurer la surface des types d'opérations que vous pouvez effectuer sur des variables. Pour l'instant, vous devez simplement comprendre qu'une variable n'est pas statique. Une grande partie de la puissance de tout langage de programmation réside dans sa capacité à manipuler des variables pour effectuer une grande variété de tâches..


La clé de tout: les dictionnaires AppleScript

Bien que AppleScript lui-même propose une vaste gamme de commandes pouvant être appliquées à n’importe quel programme ou élément d’OS X, les développeurs de chaque application sont chargés d’ajouter une prise en charge complète d’AppleScript à leurs applications. Cela signifie que les développeurs doivent rédiger des manuels simples expliquant comment communiquer avec leurs applications via AppleScript. Ces manuels s'appellent "Dictionnaires". Pour afficher un dictionnaire, sélectionnez Fichier> Ouvrir le dictionnaire dans l’éditeur de script. Faites défiler la liste des applications, cliquez sur Mail et cliquez sur "OK". Vous devriez voir la fenêtre suivante:


Le dictionnaire du courrier

La colonne de gauche contient les "suites" de commandes et d'éléments disponibles. Lorsque vous cliquez sur une suite, vous verrez tout ce qui est contenu dans la suite affichée ci-dessous. Vous pouvez restreindre cet aperçu en cliquant dans la deuxième colonne, puis à nouveau dans la troisième. Les suites contiennent des commandes (C avec un cercle) et des classes (C avec un carré), les classes contiennent des propriétés (P) et des éléments (E). Pour comprendre comment tout cela fonctionne, utilisons ce dictionnaire pour créer un script.


Étape 1: Créer un algorithme pour notre script

Nous avons d’abord besoin d’un algorithme, qui est une façon élégante de dire que nous devons écrire exactement ce que notre script fera. Nous voulons créer un script pour composer et envoyer un email. Nous voudrons utiliser des variables pour faciliter la modification du message lui-même ainsi que le destinataire du message. Lors de la rédaction de notre algorithme, nous devons garder à l’esprit le fonctionnement d’AppleScript. Voici les étapes que je suis venu avec:

  1. Créer des variables pour le destinataire, son adresse e-mail, l'objet de l'e-mail et le texte du corps de l'e-mail.
  2. Créer une variable qui contient notre nouveau message avec ses différentes propriétés
  3. Créer le nouveau message
  4. Envoyer le nouveau message

Étape 2: Créer des variables

Nous savons déjà comment créer des variables contenant du texte, de sorte que nous n’avons même pas besoin du dictionnaire pour la première étape. Voici à quoi ressemble le code:

[applescript]
--Variables
définir destinataireName sur "John Doe"
définissez destinataireAddress sur "[email protected]"
définir theSubject sur "AppleScript Automated Email"
réglez le contenu sur "Ce courriel a été créé et envoyé avec AppleScript!"
[/ applescript]

Comme vous pouvez le constater, nous venons d'ajouter du texte de substitution dans les variables pour le nom et l'adresse électronique du destinataire, ainsi que pour l'objet et le contenu de notre message. Vous pouvez les changer en tout ce que vous voulez. Assurez-vous de mettre votre propre adresse électronique dans la variable recipientAddress afin de vous assurer que le script fonctionne correctement lorsque vous recevez le courrier électronique..


Étape 3: Créer la variable de message avec le dictionnaire de courrier

Comme nous ne savons pas comment demander à Mail de créer un nouveau message, nous devons ici faire référence au dictionnaire AppleScript. Si vous cliquez sur "Suite standard", vous verrez plusieurs commandes courantes fournies en standard dans AppleScript. Sachant que nous voulons "créer" un nouveau message, il suffit de faire défiler les options et de trouver quelque chose d'équivalent. Vous verrez qu'il n'y a pas de commande "créer", mais à peu près à mi-chemin, il y a une commande "make". Cela semble parfait, nous savons donc maintenant dire à AppleScript que nous voulons "faire" quelque chose.

Cliquez ensuite sur la suite "Mail". Nous avons déjà notre commande (make), alors faites défiler les commandes (verbes) jusqu'à voir les classes. Le premier cours que nous rencontrons est le "message sortant", ce qui est formidable car c'est exactement ce que nous voulons! Maintenant, cliquez sur la classe "message sortant" et regardez les propriétés disponibles en bas.

Nous devons connecter nos variables pour le nom du destinataire, son adresse e-mail, son objet et le contenu du message. Dans la liste des propriétés, il n'y a rien sur le destinataire, mais il existe des propriétés pour le sujet et le contenu. Nous connaissons maintenant la syntaxe appropriée pour faire référence à ces propriétés. Notez que le dictionnaire vous donne le format pour définir les propriétés. Par exemple, pour le sujet, nous allons taper le mot "sujet" suivi de deux points, suivi du texte du sujet.


Contenu soumis

Vous trouverez également dans cette suite une commande "envoyer", que nous pouvons utiliser pour envoyer le message en tapant simplement "envoyer". Nous avons toujours besoin de connaître la syntaxe appropriée pour le nom et l'adresse électronique du destinataire. Comme ce n'est pas dans cette suite, cliquez sur la suite "Message". À peu près au milieu de la liste des classes, nous trouvons "destinataire". Cliquez sur la classe du destinataire et nous constatons qu’une fois encore, nous pouvons utiliser l’anglais clair pour faire référence aux propriétés du destinataire. Nous allons simplement taper "nom" et "adresse".

Vous pouvez utiliser la fonction de recherche pour rechercher rapidement les propriétés, les classes, les éléments et les commandes..

Nous sommes maintenant prêts à créer notre variable de message en utilisant la syntaxe que nous venons d'apprendre. Voici à quoi ressemble le code:

[applescript]
--Variables
définir destinataireName sur "John Doe"
définissez destinataireAddress sur "[email protected]"
définir theSubject sur "AppleScript Automated Email"
réglez le contenu sur "Ce courriel a été créé et envoyé avec AppleScript!"

--Mail Tell Block
dire à l'application "Mail"

--Créer le message
définissez theMessage pour créer un nouveau message sortant avec les propriétés subject: theSubject, content: theContent, visible: true

fin dire
[/ applescript]

Notez que j'ai créé un bloc tell pour inclure toutes les commandes à l'application Mail. Ensuite, j'ai défini une variable (theMessage) pour "créer" un nouveau "message sortant" avec les propriétés décrites ci-dessus. Notez également que les ensembles de propriétés sont toujours entre crochets .


Étape 4: Définir le destinataire et envoyer le message

Maintenant que nous avons créé notre variable de message, nous devons l'appeler et créer un nouveau message avec les propriétés de theMessage. Nous devons également définir les destinataires et envoyer le message. Pour ce faire, nous allons utiliser un bloc tell sur notre variable. Voici notre script fini.

[applescript]
--Variables
définir destinataireName sur "John Doe"
définissez destinataireAddress sur "[email protected]"
définir theSubject sur "AppleScript Automated Email"
réglez le contenu sur "Ce courriel a été créé et envoyé avec AppleScript!"

--Mail Tell Block
dire à l'application "Mail"

--Créer le message
définissez theMessage pour créer un nouveau message sortant avec les propriétés subject: theSubject, content: theContent, visible: true

--Définir un destinataire
dites au message
créer un nouveau destinataire avec les propriétés nom: destinataireName, adresse: destinataireAddresse

--Envoyer le message
envoyer

fin dire
fin dire
[/ applescript]

Tout d'abord, nous avons créé une nouvelle copie de theMessage (qui hérite de toutes les propriétés que nous avons insérées) et l'a définie "comme destinataire avec des propriétés". Cela indique à Mail que nous souhaitons ajouter un destinataire avec les propriétés suivantes. Ici, nous venons d'utiliser la syntaxe précédemment apprise et les variables pour le nom et l'adresse du destinataire..

Enfin, nous avons appelé la commande "send" pour envoyer notre message. Notez que nous avons deux blocs Tell pour fermer cette fois-ci. Une fois que vous avez compilé votre code et corrigé les erreurs éventuelles, cliquez sur "Exécuter". Mail doit automatiquement créer et envoyer le message. Tadaah! Vérifiez votre dossier envoyé pour vous assurer que tout fonctionne.


Message de courrier

Félicitations, vous avez créé votre premier AppleScript! Vous pouvez l'enregistrer en tant que script simple que vous pouvez revenir et modifier ou en tant qu'application qui s'exécute automatiquement à l'ouverture..


Conclusion: continuer à apprendre

J'espère que ce guide du débutant vous fera penser à toutes sortes de processus et de tâches que vous aimeriez automatiser. La syntaxe que je vous ai montrée avec les dictionnaires AppleScript vous mènera loin. Toutefois, si vous souhaitez réellement implémenter AppleScript de différentes manières, vous avez encore plus à lire. Apple fournit de nombreuses informations sur AppleScript sur son site Web. Voici un bon endroit pour commencer.

Un autre site Web sur lequel j'ai beaucoup acheté est T & B. Il propose des explications très détaillées et des tutoriels à suivre (un peu daté, mais complet et gratuit). N'hésitez pas à laisser un commentaire et à nous faire savoir si vous avez trouvé ce tutoriel utile! Quels autres conseils AppleScript souhaiteriez-vous voir couverts à l'avenir??