
AppleScript est un langage de programmation qui sert à automatiser des tâches entre applications. De plus en plus puissant, notamment grâce à MacOS X, il peut même servir à développer des applications autonomes.
AppleScript permet de piloter des applications, ainsi au lieu d’utiliser votre souris et votre clavier, c’est des instructions AppleScript qui prendront le contrôle de vos applications.
De nombreuses applications peuvent être contrôlées par AppleScript, on les appelle des applications pilotables. Pour savoir les applications pilotables que vous avez, ouvrez l’application Éditeur AppleScript du dossier AppleScript. Ensuite allez dans le menu "Fichier" puis "Ouvrir un dictionnaire".
Les classes sont des informations (appelées propriétés) que nous pouvons obtenir de l’application. Celles qui ne sont pas suivies par [r/o] sont modifiables par AppleScript. Quand dans une classe vous voyez "<Inheritance>", cela veut dire qu’en plus des propriétés que vous voyez, celle classe dispose des propriétés de la classe indiquée.
Les commandes sont des actions à exécuter.
Prenons iTunes pour découvrir son dictionnaire. Une fois le dictionnaire ouvert, cliquez sur iTunes Suite puis Classes puis track. Nous voyons alors toutes les informations que nous pouvons obtenir sur une piste. Allez dans Commandes, vous voyez les actions que vous pouvez effectuer dans iTunes.
Les instructions AppleScript sont basées sur l’anglais courant. Commençons par la première : "tell". Celle-ci sert à dire à une application d’effectuer une action.
Voici un exemple :
tell application "iTunes" to play
Tapez cet exemple dans la fenêtre vierge de l’éditeur de scripts, puis cliquez sur le bouton "Compiler" puis "Lire".
iTunes va commencer la lecture : vous avez fait votre premier AppleScript !
Si nous avions plusieurs instructions à dire à iTunes, nous ferions :
Cela s’appelle un bloc "tell". Il en existe plusieurs que nous verrons par la suite.
Nous allons décortiquer le script d’une partie de iSearch 1.0, un programme de recherche que j’ai créé.
set chosensite to button returned of (display dialog "Que voulez-vous rechercher ?" buttons ["Une image", "Une page web"])
if chosensite is "Une page web" then
set searchstr to text returned of (display dialog "Tapez un mot-clés ci-dessous :" default answer "")
open location "http://www.google.fr/search ?hl=fr&q=" & searchstr & "&btnG=Recherche+Google&meta="
end if
if chosensite is "Une image" then
set searchstr to text returned of (display dialog "Tapez un mot-clés ci-dessous :" default answer "")
open location "http://images.google.fr/images ?q=" & searchstr & "&hl=fr&lr=&sa=N&tab=wi"
end if
Vous trouvez peut-être qu’il faut être pro en AppleScript pour faire ça ? Et bien non, c’est très simple ! ’’display dialog "texte" buttons ["1er bouton", "2e bouton"]’’ vous l’aurez peut-être deviné, sert à afficher une fenêtre avec du texte et des boutons ! (maximum de 3 boutons) On peut aussi mettre une case où l’utilisateur pourra écrire, avec la commande " default answer’’ ’’ " à la place des boutons. ’’set chosensite to button returned’’ ça, ça veut dire que l’utilisateur va choisir un des deux boutons, désignés ici par le mot chosensite ; si l’on veut remplacer "button" par "text", alors l’utilisateur va taper un texte désigner par le même mot. Le mot chosensite va être réutiliser plus tard, avec ’’if’’ ici.
’’if chosensite is "1er bouton" then
(...)
end if’’
veut dire "si le mot chosensite désigne ’’1er bouton’’ on a : tel script. fin de l’action liée au bouton ’’1er bouton’’" En gros, si l’utilisateur clique sur le bouton nommé "1er bouton", il activera un script quelconque. Souvenez-vous maintenant de ce que veux dire "set searchstr to text returned of..." ça veut dire que l’utilisateur va taper un texte désigné par la variable searchstr. Il va être réutiliser pour se connecter à une page internet avec la commande ’’open location’’ puis le lien entre guillemets, ici, si l’utilisateur tape "MacTouch" par exemple, il aura la page
"http://www.google.fr/search ?hl=fr&q=MacTouch&btnG=Recherche+Google&meta=" que le script appelle "http://www.google.fr/search ?hl=fr&q=" & searchstr & "&btnG=Recherche+Google&meta="
On a donc appris... A utiliser display dialog pour que l’utilisateur place un texte : set variable to texte returned of (display dialog "texte" default answer"") Et pour placer des boutons : set variable to button returned of (display dialog "texte" buttons ["1er bouton", "2e bouton"] A aller vers une page web : open location "http://url.url" Et a aller vers une page web avec plusieurs parties : open location "http://www." & variable & ".com"
AppleScript (page en anglais)
Certains caractères sont marqués comme des codes dans cet article, pour mieux comprendre, je vous ai mis des captures en .pdf Ainsi, dans Script Editor, il faudra, à la place de ] ou [ mettre alt + ) ou alt + (
J’ai 20 à 25 fichiers Xpress de 16 pages chacun à imprimer. Je voudrais que le Mac gère l’impression seul : il lance les 25 fichiers tour à tour, sans que je n’ai besoin d’être là.
Apple script doit pouvoir m’aider ! mais comment ? je ne connais pas son utilisation. merci de votre aide