Applescript pour les débutants absolus. MAC OS X Introduction à AppleScript

Maison / Ne s'allume pas

AppleScript est un langage de programmation puissant qui remonte à Mac OS 7. Cependant, malgré sa maturité, les programmeurs Mac expérimentés reprochent souvent à AppleScript d'être trop simple, trop facile à apprendre et trop similaire à l'anglais ordinaire.

Bien sûr, vous voudriez qu’un langage informatique possède ces mêmes qualités – si, bien sûr, vous voulez un langage informatique. AppleScript est le langage de programmation le plus simple avec lequel vous pouvez automatiser votre Mac, même si vous êtes un simple utilisateur et non un informaticien certifié.

Les programmes AppleScript (appelés scripts ou scripts) peuvent être considérés comme des robots logiciels. Un simple AppleScript peut effectuer certaines tâches quotidiennes comme créer copie de sauvegarde Dossiers de documents. Un script plus complexe peut s'étendre sur plusieurs pages. Dans les maisons d'édition professionnelles, où les AppleScripts sont les plus populaires, le script peut se connecter via Internet au disque dur du photographe, récupérer la photo dans un dossier spécifié, effectuer une correction des couleurs dans Photoshop, coller le résultat dans un document de mise en page spécifié, imprimer un brouillon mise en page, envoyez une notification par e-mail à l'éditeur - et tout cela se fait automatiquement.

Sans même le savoir, l’utilisateur utilise constamment la technologie AppleScript sous-jacente. En coulisses, de nombreux composants Mac communiquent via Apple Events, qui sont des messages qui transmettent des instructions ou des données d'un programme à l'autre. Si vous utilisez la commande Afficher l'original sur un alias ou la commande Obtenir des informations sur un fichier ou un dossier, l'événement Apple indiquera au Finder comment répondre.

AppleScript est supérieur à Automator à bien des égards, notamment sa puissance. Et encore une chose : AppleScript est un sujet si profond qu'il devrait être consacré à un livre séparé. Ce chapitre n'est qu'un savoureux apéritif : un livre comme AppleScript : The Essential Guide serait un repas de sept plats.

Conseil Vous pouvez télécharger un chapitre entier sur AppleScript, paru dans une édition précédente de ce livre, à partir de la page Missing CD sur www.missingmanuals.com.

Vous n'avez pas besoin de créer AppleScript pour profiter des avantages de cette technologie. Mac OS X est livré avec des dizaines de scripts prêts à l'emploi qui sont vraiment utiles, et pour exécuter l'un d'entre eux, sélectionnez simplement son nom dans le menu. Cette « reproduction » d'un AppleScript nécessite autant de compétences techniques que d'appuyer sur un bouton d'ascenseur.

Vous pouvez essayer certains de ces scénarios de démarrage intéressants en ajoutant un menu de scénarios à la barre de menus (Figure 7.16, à droite).

Le menu de scénarios comporte 16 catégories prêtes à l'emploi, combinant environ 100 scénarios ; pour exécuter un script, sélectionnez simplement son nom. Voici une liste des scénarios les plus utiles et intéressants.

Conseil Si vous appuyez sur la touche Maj tout en sélectionnant un nom de script dans le menu, Mac OS X vous amènera directement à l'endroit où se trouve ce script dans le Finder (par exemple, le dossier Accueil>Bibliothèque>Scripts). De plus, si vous appuyez sur la touche Option tout en sélectionnant un nom, le script s'ouvrira dans l'éditeur de script, où vous pourrez l'examiner ou le modifier.

Ce sous-menu contient uniquement le script Importer des adresses, conçu pour copier les noms et adresses d'Entourage, Outlook Express, Palm Desktop, Eudora, Claris Emailer ou Netscape dans le programme Carnet d'adresses. Si vous avez beaucoup d'amis, utilisez ce script pour ne pas avoir à saisir à nouveau tous leurs noms, numéros de téléphone et adresses postales. (Le sous-dossier Address Importers qui l'accompagne propose des scripts pour l'importation à partir de trois programmes spécifiques.)

Le sous-menu Bases contient trois petits scripts pratiques liés à AppleScript : Aide AppleScript (ouvre la visionneuse d'aide et recherche le mot AppleScript) ; Site Web AppleScript (ouvre la page Web AppleScript dans votre navigateur Web) ; Open Script Editor (ouvre le programme Script Editor, conçu pour lire et éditer des scripts AppleScript).

Ce dossier contient un groupe de scripts de droplet ColorSync (qui s'exécutent lorsque vous faites glisser quelque chose sur son icône) qui intéressent les artistes, les concepteurs de sites Web, les éditeurs, etc.

Dans certains cas, lorsque vous sélectionnez un script dans ce menu, vous verrez un bref message d'information, puis une boîte de dialogue Ouvrir pour sélectionner fichier graphiqueà traiter.

D’autres agissent immédiatement ; par exemple, le script du moniteur Mimic PC ajuste les couleurs de l'écran pour qu'elles correspondent étroitement aux teintes légèrement différentes d'un moniteur d'ordinateur Windows. C'est très pratique si vous travaillez sur

COURS POUR UTILISATEURS EXPÉRIMENTÉS
Les secrets du menu de script
Le menu Scripts affiche le contenu de deux dossiers Scripts différents : l'un est Accueil>Bibliothèque>Scripts et l'autre se trouve dans le dossier Bibliothèque principal. Les scripts extraits de votre dossier personnel sont séparés par une ligne pointillée dans le menu des scripts.

Ces scripts ne peuvent pas seulement être exécutés. Ils sont également idéaux pour les ouvrir dans l'éditeur de script (il suffit de double-cliquer) et d'analyser ligne par ligne leur fonctionnement. Une fois que vous avez compris la syntaxe, vous pouvez copier des fragments de code et, après les avoir modifiés, les utiliser dans vos scripts. (L'éditeur de scripts est un programme trouvé dans le dossier Applications > AppleScript que vous pouvez utiliser pour créer vos propres scripts.)

Une photographie ou une page Web et je veux savoir à quoi cela ressemblera pour les masses non éclairées. (Pour restaurer les couleurs d'origine, accédez à l'onglet Couleur de la télécommande d'affichage dans la fenêtre Préférences Système.)

Tous ces scénarios concernent le travail dans le Finder, par exemple la manipulation de fichiers et de fenêtres. Voici les plus utiles d’entre eux :

Ajouter aux noms de fichiers, Ajouter aux noms de dossiers. Ces scripts attachent un préfixe ou un suffixe au nom de chaque fichier ou dossier dans la fenêtre avant (active) du Finder (ou, si aucune fenêtre n'est ouverte, sur le bureau). À l'aide de ces scripts, vous pouvez ajouter le mot « brouillon » ou « final » ou « ancien » aux noms de tous les fichiers d'un dossier.

Remplacer le texte dans les noms d'éléments vous permet d'effectuer une recherche de remplacement dans les noms de fichiers, de dossiers ou les deux. Si un éditeur rejette votre proposition de livre de 45 chapitres, vous pouvez utiliser ce script pour renommer les 45 chapitres : disons que ce qui était "Une histoire de tapis de souris - Proposition pour Random House, chapitre 1" devient "Une histoire de tapis de souris - Proposition pour Simon". "& Schuster, chapitre 1."

Couper les noms de fichiers, couper les noms de dossiers. Si vous avez commis une erreur lors de l'exécution du script Ajouter aux noms de fichiers, vous pouvez toujours la corriger en utilisant Trim File Names. Ce script supprime les extensions de fichier, les suffixes ou les préfixes choisis par l'utilisateur.

Disons que vous venez de créer plusieurs nouveaux dossiers à la fois. Mac OS X nomme ces dossiers « dossier sans titre », « dossier sans titre 2 », etc. Mais que se passe-t-il si vous êtes plus à l'aise avec les noms « dossier 1 », « dossier 2 », etc. ? Exécutez le script Trim Folder Names ; Dans la boîte de dialogue, tapez sans titre et cliquez sur OK.

Il est peu probable que vous utilisiez activement les scripts d'actions sur les dossiers, car le même accès aux opérations sur les dossiers est fourni par un Ctrl-clic sur un dossier (ou à l'intérieur de sa fenêtre).

Ces scripts montrent comment automatiser certaines tâches liées aux polices.

FontSync est la noble tentative d'Apple pour résoudre un vieux problème de publication assistée par ordinateur. Vous avez fini de créer une belle newsletter et vous l'apportez à votre imprimerie locale pour la faire imprimer sur un équipement de haute qualité, pour constater que vous devez jeter les impressions et tout recommencer - pour constater que les polices ne ressemble pas à ce que tu voulais. L’imprimerie ne disposait pas des polices exactes que vous avez utilisées pour préparer le document. Ou, pire encore, les polices portaient exactement les mêmes noms, mais étaient créées par une société différente et différaient donc légèrement des vôtres dans certains paramètres.

L'idée derrière FontSync est d'informer l'utilisateur à l'avance d'éventuelles incohérences. Le script Créer un profil FontSync crée un fichier de profil FontSync en quelques minutes. Ce document contient une quantité impressionnante d'informations sur la conception, le flux et les fonctionnalités de toutes les polices installées sur le système. Dans une imprimerie, un tel document peut être traité à l'aide du script supplémentaire Match FontSync Profile. Il examinera les différences entre les polices du Mac de l'utilisateur et celles des presses à imprimer.

Bien sûr, cette technologie suppose implicitement trop de choses : que l'imprimerie dispose d'ordinateurs Macintosh installés, qu'ils peuvent gérer FontSync, et aussi que l'utilisateur n'oubliera pas de créer et de transférer au préalable un profil FontSync à l'imprimerie.

IChat a subi une refonte importante dans la version 10.5 - Apple a ajouté de nombreuses fonctionnalités intéressantes (bien que parfois inutiles). Il est également devenu possible d'exécuter des AppleScripts comme signaux lorsqu'un événement lié à vos contacts se produit. Par exemple, vous pouvez accepter automatiquement les invitations à discuter de contacts individuels ou même y répondre avec un message d'accueil préparé à l'avance. Vous pouvez même contrôler la lecture de musique sur un Mac en tapant des commandes dans la fenêtre iChat d'un autre Mac de votre maison. Détails au chapitre 21.

L’avantage de ces deux scénarios est faible. Date et heure actuelles affiche la date et l'heure actuelles dans une boîte de dialogue équipée d'un bouton Presse-papiers pour copier les informations, prêtes à être collées. Font Sampler affiche une page répertoriant les polices (dont les noms sont écrits dans le script) installées avec Mac OS X. (Le script est devenu moins utile depuis que Font Book a ajouté des commandes d'impression intégrées similaires.)

Deux scénarios de ce menu méritent une mention particulière. La température actuelle par code postal indique la température à l'extérieur de la fenêtre en degrés Fahrenheit et Celsius. C'est une autre raison de ne pas quitter la maison toute la journée.

Stock Quote reçoit les cotations boursières de la société sélectionnée avec un délai de 20 minutes. Ce n'est pas aussi efficace que d'obtenir des devis en temps réel, mais c'est gratuit.

La plupart des scripts de ce sous-menu résolvent certains problèmes spécifiques tels que compter les lettres dans vos e-mails. boîtes aux lettres ou en créer un nouveau compte. Le plus drôle de tous, bien sûr, est le scénario Crazy Message Text (Fig. 7.17).

Les scripts de ce dossier vous permettent d'accéder à des dossiers spéciaux du Finder - directement depuis le menu, depuis n'importe quel programme. Si le dossier que vous souhaitez ouvrir n'a pas son propre script attribué, sélectionnez-le dans la liste du script Ouvrir un dossier spécial.

Conseil Pour ceux qui ne craignent pas de devoir modifier ce script à l'aide de l'éditeur de script, vous pouvez le modifier pour vous permettre de sélectionner et d'ouvrir plusieurs dossiers à la fois (via, disons, un -clic). Il vous suffit de taper le texte sélections multiples autorisées vrai immédiatement après les mots Choisir le dossier à ouvrir : (en fin de ligne, situé approximativement au début du deuxième tiers du script). N'oubliez pas de sauvegarder vos modifications.

Ces scripts sont conçus pour démontrer la puissance d'AppleScript pour l'impression et la création de documents PostScript et PDF.

L'un d'eux, Print Window, comble une lacune de longue date dans Mac OS X. Il devrait imprimer une liste de textes du contenu de n'importe quel dossier sélectionné. (C'est un peu buggé, cependant.)

Selon l'équipe À propos de ces scripts, ces 48 scripts prédéfinis vous aident à écrire des scripts plus rapides et plus précis car les extraits de code sont exempts de fautes de frappe et d'erreurs de syntaxe. Au fur et à mesure que vous vous améliorez, vous pouvez ajouter ici vos propres scripts, avec des extraits de code adaptés aux scripts que vous écrivez habituellement pour rendre votre travail encore plus efficace. (Lorsque vous créez un script dans l'éditeur de script, vous insérez ces extraits de code dans le texte à l'aide d'un contrôle-clic et d'une sélection de menu. accès rapide.)

Pour la plupart, les scripts font leur travail en silence et inaperçus. Mais si vous souhaitez automatiser un programme qui ne comprend pas les commandes AppleScript normales, les scripts peuvent le « contrôler » manuellement en simulant les sélections de menu, les pressions sur les boutons, etc.

Note Cette fonctionnalité, appelée script d'interface utilisateur, ne prendra effet qu'après avoir ouvert la console Universal Access dans les Préférences Système et coché la case Activer l'accès pour les appareils auxiliaires.

Il ne sert à rien d'exécuter les scripts à partir du sous-menu UI Element Scripts tels quels : ce ne sont que des exemples pour démontrer la syntaxe correcte.

Ce dernier ensemble de scripts offre un accès rapide à certains sites Web populaires. Une exception est le script Download Weather Map, qui télécharge la carte météo actuelle de la zone continentale des États-Unis, l'enregistre sur le bureau sous le nom Weathermap.jpg, puis l'ouvre dans Aperçu.

Conseil Vous pouvez ajouter des scripts, des fichiers et même des adresses Internet au menu, puis les lancer facilement depuis la barre de menus. Tout ce que vous faites glisser dans le dossier Bibliothèque>Scripts apparaîtra automatiquement dans le menu des scripts.

D'un autre côté, si vous commencez à ajouter un grand nombre de vos propres éléments au menu Script, il sera plus pratique d'en supprimer les échantillons Apple. Aucun problème. Ouvrez l'utilitaire AppleScript et décochez Afficher les scripts de l'ordinateur.

Travailler avec scripts prêts à l'emploi AppleScript

En parcourant le menu des scripts, vous vous rendrez vite compte que vous disposez de dizaines de scripts intégrés gratuits sur votre Mac. Ce qui est bien, c'est que vous pouvez comprendre comment ils fonctionnent et même les modifier au fur et à mesure que vous apprenez progressivement à écrire vos propres AppleScripts. Vous pouvez même copier et utiliser des sections entières de scripts Apple dans vos propres scripts.

Bien entendu, vous devez d’abord ouvrir le script. Le moyen le plus simple de procéder est d'ouvrir le menu des scripts, de sélectionner la catégorie souhaitée et de cliquer sur Option-clic sur le nom du script souhaité.

Vous pouvez commencer à apprendre AppleScript en regardant un simple script. Ouvrez par exemple le script Nouvelle fenêtre d'application (dans la catégorie Scripts de navigation) en cliquant sur son nom tout en appuyant sur Touche d'option. En conséquence, Script Editor ouvrira le fichier dans une nouvelle fenêtre (Fig. 7.18).

Voici comment fonctionne ce script :

Dites à l'application "Finder" indique à Mac OS X quel programme doit exécuter les commandes suivantes.

Activer amène le Finder au premier plan, comme si vous aviez cliqué sur son icône dans le Dock.

Ouvrir le dossier "Applications" du disque de démarrage indique au Finder d'ouvrir une nouvelle fenêtre affichant le dossier Applications du disque dur principal.

End tell indique au Finder de vaquer à ses occupations et d'ignorer toute autre commande de votre script.

Pour tester le script, cliquez sur le bouton Exécuter ou appuyez sur -R.

Conseil Vous pouvez modifier ce script pour mieux répondre à vos besoins. Essayez, par exemple, de remplacer « Applications » par « Utilisateurs » pour que le script ouvre le dossier Utilisateurs.

Créer vos propres AppleScripts

Mac OS X est livré avec des dizaines de programmes – ils sont si nombreux ! D'accord, il manque quelque chose – un métronome, par exemple. Comment allez-vous jouer du piano à un rythme régulier sans entendre les clics rythmiques de votre Mac ? Bien sûr, à la rigueur, un métronome GarageBand peut aider, mais c'est tirer sur des moineaux avec un canon.

Vous pouvez utiliser AppleScript à la place. Ouvrez un nouveau document dans l'éditeur de script (Fichier>Nouveau ou -N) et tapez ce qui suit :

afficher la boîte de dialogue "Bienvenue dans le métronome AppleScript"

définir bpm sur le texte renvoyé par (boîte de dialogue d'affichage ¬

"Combien de battements par minute ?" réponse par défaut 60)

régler pauseBetweenBeeps sur (60/bpm)

retarder la pause entre les bips

Note Il n'est pas nécessaire d'imprimer le symbole ¬. Les programmeurs disent donc : « Cela devrait être sur une seule ligne, mais la largeur de la page n’est pas suffisante. »

Lorsque vous exécutez ce script, une boîte de dialogue apparaît vous demandant combien de battements par minute vous souhaitez que le métronome compte. Le nombre que vous saisissez (par exemple, 120) est stocké dans une variable de stockage temporaire au sein du script appelé bpm.

Le script calcule ensuite la durée de pause entre les bips et enregistre cette fraction de seconde dans la variable pauseBetweenBeeps. Si vous avez dit au script quoi publier bip, par exemple, 120 fois par minute, alors la valeur 0,5 sera écrite dans pauseBetweenBeeps, car il doit y avoir une pause égale à une demi-seconde entre les échantillons.

Enfin, le script crée une boucle infinie : signalez, faites une pause d'une durée spécifiée, puis répétez.

Cliquez sur le bouton Exécuter pour tester votre script, et lorsque vous avez entendu suffisamment de sons, cliquez sur le bouton Arrêter.

MES TECHNIQUES PRÉFÉRÉES
Pièces jointes de bureau en un clic
Ici petit truc avec Automator, qui peut être une bouée de sauvetage pour tous ceux qui ont souvent besoin d'envoyer des documents par email. (Il modélise la très pratique commande Envoyer vers trouvée dans le menu contextuel des machines Windows.)

Créez un processus dans Automator en deux étapes seulement : obtenir les éléments du Finder sélectionnés (dans la catégorie Finder) et un nouveau message électronique (dans la catégorie Mail).

Si vous envoyez toujours des fichiers au même destinataire (votre patron, par exemple), vous pouvez même prédéfinir l'adresse dans le panneau de processus d'Automator. Si l'objet et le texte du message sont répétés à chaque fois, vous pouvez également les paramétrer à l'avance.

Sélectionnez maintenant Fichier> Enregistrer sous le plug-in. Nommez le processus Email This ou ce que vous voulez.

À partir de maintenant, vous pouvez envoyer un document depuis le Finder en faisant un Ctrl-clic dessus et en choisissant Automator> Envoyer par e-mail dans le menu qui apparaît.

Victoire! Mac OS X lance Mail et crée un message sortant avec un fichier joint.

Astuce gratuite : si vous insérez une autre action Créer une archive (de la catégorie Finder) entre ces deux actions, votre commande de menu compressera également le fichier (ou dossier) dans un fichier .zip avant de l'envoyer par mail !

Conseil Ce sera encore plus cool si vous vérifiez les Préférences Système> Accès universel> Audition> Flasher l'écran lorsqu'un son d'alerte se produit dans les paramètres de votre système. Désormais, lorsque votre script s'exécutera, l'écran clignotera avec le son. Si vous enregistrez de la musique, coupez le son de votre Mac : vous aurez un métronome visuel, mais aucun signal audio.

Comparaison d'AppleScript et d'Automator

Il existe des centaines d'utilisations d'AppleScript : automatiser des processus trop complexes pour Automator, contrôler des programmes que Automator ne peut pas voir et programmer des choses comme le bouclage de commandes que Automator ne peut pas faire.

Si vous ne considérez AppleScript qu'en remplacement d'Automator, vous manquez beaucoup de puissance. En vérité, AppleScript offre des fonctionnalités qu'Automator n'aura probablement pas dans 10 ans : c'est un outil beaucoup plus avancé.

Automator est bon pour les tâches simples. Si vous avez besoin d'AppleScript pour automatiser votre Mac, ne désespérez pas. Tu prends vraiment sur toi outil puissant. (Vous pouvez même les combiner et intégrer des AppleScripts dans les processus Automator à l'aide de l'action Exécuter AppleScript.)

Bonne chance avec l'automatisation !

Vous n’utilisez pas encore AppleScript ? Vous ne savez pas ce que c'est ? Pensez-vous que cela ne vous sert à rien ? Ou peut-être que le souvenir des cours d'informatique à l'école vous provoque une crise d'allergie à la simple mention du mot « programme » ? Cela signifie que vous avez fait la bonne chose en ouvrant cet article.

J'espère que cela vous aidera à comprendre cet outil très utile, et que le temps passé à lire sera largement récompensé plus tard.

Souvent, lorsque nous travaillons avec un programme particulier, nous devons effectuer plusieurs fois les mêmes actions : appuyer sur les mêmes touches, sélectionner la même commande dans le menu, saisir les mêmes valeurs dans boîtes de dialogue& C'est là qu'AppleScript entre en jeu. Nous décrivons la séquence de nos opérations sous la forme d'un programme "script", le lançons et buvons tranquillement du café, en regardant de temps en temps si le traitement du dernier, trois mille sept cent quatre-vingt-neuvième fichier est terminé. Quelque chose de similaire existe sous la forme de fichiers DOS BAT ou de scripts shell UNIX. Mais AppleScript présente un avantage important : le langage est « compris » à la fois par le Finder et par un grand nombre d'utilisateurs. programmes d'application, et le script peut y accéder tous un par un.

Le langage que nous utiliserons (également appelé AppleScript) est très proche du langage classique langue anglaise. Par exemple, le script pourrait ressembler à ceci :

dire application "Recherche"
faire
fin dis

Je pense que tout le monde a compris ce qu'il allait faire. Mais pour apprendre à écrire vos propres scripts, vous devrez comprendre certaines notions.

Objets, propriétés, événements...

AppleScript est un langage orienté objet. Autrement dit, tout ce qui « existe » dans votre ordinateur, il le considère objets(objets). Un objet peut être constitué d'autres objets, être inclus dans un autre objet ou être lié à un autre objet. Par exemple, Finder est un objet. Il contient des objets « subordonnés » - dossiers, fichiers, fenêtres. L'éditeur Tex-Edit dispose d'un objet texte, constitué de mots, de lignes, de paragraphes, etc. Connaître comment les objets sont liés (leur hiérarchie) est très important, puisque la commande se transmet « tout au long de la chaîne ». Une sorte de « verticale du pouvoir » s’opère : on donne des ordres au Finder, il donne des ordres au dossier, il donne des ordres au dossier qui y est imbriqué, et ainsi de suite, jusqu’à atteindre le fichier souhaité. Et le « rapport d’exécution » suivra à nouveau la même chaîne – dans la direction opposée.

Formulaire d'objets du même type (par exemple, tous les dossiers) Classe(classe). Chaque objet a un certain ensemble propriétés(propriétés) qui le distingue d’un autre. Par exemple, chaque fichier a un nom, une étiquette, un type, une date de création, une version et plus d'une douzaine de caractéristiques. Le script peut en modifier certains, certains ne peuvent être que lus.

Une classe (appelée "descendant") peut hériter des propriétés d'une autre classe ( "ancêtre"). Par exemple, les dossiers et les fichiers ont un ancêtre commun : un élément (item).

Regardons maintenant notre exemple, en le développant un peu :

- tout texte écrit après les « deux moins »,
— a examiné un commentaire;
- l'ordinateur n'y prête pas attention
dire application "Recherche"
- le mot tell commence un groupe de commandes,
- lié à un objet
faire nouveau dossier sur le bureau avec les propriétés (nom : "Mine !", index d'étiquette : 2)
fin dis - et c'est ainsi que se termine le groupe de commandes
dire application "Recherche" dire article "Le mien!"
ouvrir
ensemble son nom à"Seulement pour moi"
fin dis

Nous disons d'abord au Finder de créer nouvel objet classe "dossier", située sur la table. Certaines propriétés sont spécifiées dans la commande (nom du dossier et son étiquette de couleur), le reste sera attribué par défaut par l'ordinateur. Ensuite, nous disons au Finder de commander son dossier (de cette façon et seulement de cette façon : « le vassal de mon vassal n'est pas mon vassal ») pour ouvrir et changer le nom.

Mais il est temps de passer du raisonnement théorique à quelque chose de plus tangible. Il est temps de lancer l'éditeur de script.

Éditeur de scripts

Plusieurs programmes ont été créés pour fonctionner avec AppleScript, notamment des outils de développement très avancés. Vous finirez probablement par en posséder un plus tard. Mais pour une première connaissance, l'éditeur inclus avec Mac OS nous suffira.

La fenêtre de l'éditeur de script est divisée en deux parties : le commentaire est écrit dans la partie supérieure (il s'affiche à l'écran avant l'exécution du script), et le programme est dans la partie inférieure. Essayons de taper notre exemple (bien sûr, vous pouvez vous passer de mes commentaires). Cliquez ensuite sur le bouton « Vérifier la syntaxe ». Si vous avez commis une erreur, une fenêtre explicative apparaîtra. Mais très probablement, tout ira bien - et après une courte pause, le texte changera quelque peu d'apparence. La police qui sera utilisée pour mettre en évidence les différents éléments du script peut être configurée à l'aide de la commande « Formatage AppleScript » dans le menu « Édition ». Vous pouvez maintenant cliquer sur le bouton « Exécuter ». Est-ce que ça a marché ?

Le script écrit peut être sauvegardé de différentes manières : soit source(Texte), ou déjà script compilé(Script compilé) - prêt à être exécuté par un éditeur de script ou d'autres programmes, enfin - sous la forme d'un programme indépendant (note de bas de page : bien sûr, pas tout à fait - sans AppleScript installé, il ne fera rien) programme d'applets(Application). Vous pouvez créer un script « exécution uniquement » (Run-only). N'oubliez pas dans ce cas d'économiser - pour vous-même - et fichier original. Sinon, non seulement les concurrents désireux de violer vos droits d'auteur, mais aussi vous-même ne pourrez pas accéder à son texte source.

Dictionnaires, dictionnaires, dictionnaires...

"Eh bien, d'accord", pensez-vous probablement, "l'éditeur est aussi simple que d'éplucher des poires à utiliser, lisez scripts prêts à l'emploi- pas non plus difficile. Mais comment les écrire ? Où trouvons-nous toutes ces classes, commandes, propriétés ? » La réponse est simple : il faut regarder dictionnaire. Chaque programme prenant en charge le travail avec AppleScript, ainsi que ScriptingAddition (nous parlerons des « ajouts » plus tard) contient brève description tous ses objets et commandes reconnues. Vous pouvez visualiser ce dictionnaire directement depuis l'éditeur de script - en sélectionnant « Ouvrir le dictionnaire » dans le menu « Fichier » ou en faisant glisser le programme souhaitéà la photo de l'éditeur.

Les programmes Macintosh peuvent prendre en charge AppleScript à trois niveaux différents.
Scriptable- le programme peut exécuter des commandes décrites sous forme de script.
Enregistrable- il est possible d'enregistrer les commandes exécutées dans le programme. Créons un nouveau script, commençons l'enregistrement (à l'aide du bouton « Enregistrer »), effectuons, par exemple, les actions nécessaires manuellement dans le Finder et arrêtons l'enregistrement (« Stop »). C'est tout. Cela rend très pratique la création de modèles de script.
Attachable- le script peut être exécuté directement depuis le programme, en étant « attaché » à un menu ou à n'importe quel objet de la fenêtre. Exemples de tels programmes : AppleWorks, Tex-Edit, FileMaker Pro.

Ouvrons, par exemple, le dictionnaire Finder.

Sur la gauche, vous voyez une liste de tous les « termes » définis dans le programme. Attention : certains d'entre eux sont en italique. Ce sont des objets. Tous les autres sont des équipes. En cliquant sur le mot souhaité, vous pouvez lire un court résumé.

Que pouvez-vous découvrir, par exemple, sur « Container » ? Tout d’abord, nous voyons : « Conteneur de classe : un élément qui contient d’autres éléments. » Autrement dit, c'est un élément contenant d'autres éléments. Et si vous regardez les descriptions des prochaines classes, vous comprendrez que « conteneur » est un concept qui inclut les disques, les dossiers, le bureau et la corbeille. Il possède les propriétés communes de ces objets largement similaires. Et dans « l'arbre généalogique » - la hiérarchie des classes - il est leur ancêtre.

Continuez à lire. "Forme plurielle : conteneurs". Forme plurielle ? Étudions-nous la grammaire anglaise ? Oui et non. J'ai déjà mentionné qu'AppleScript est aussi proche que possible du langage naturel. Et si nous voulons traiter tous les objets d'une classe donnée, alors nous pouvons écrire ceci, comme il se doit en anglais, soit « every containers » ou « containers ».

Comme vous le savez déjà, un objet peut contenir d'autres objets. Lesquels et comment ils diffèrent les uns des autres sont décrits dans la section suivante du dictionnaire - « Éléments ». Un conteneur, comme vous pouvez le voir, peut contenir des objets d'une douzaine de classes différentes, par exemple, d'autres conteneurs, dossiers, fichiers de documents et de programmes, etc. Et vous pouvez indiquer un élément spécifique d'une classe soit par son nom (par nom) ou par numéro de série (par index numérique).

Et enfin, la dernière section est « Propriétés ». Ici, nous voyons tout d'abord que la classe « Container » est une descendante de la classe « Element » ( item ), c'est-à-dire qu'il a toutes ses propriétés. Mais cette classe en a aussi plusieurs. Attention : certaines d'entre elles sont marquées « » (lecture seule), ces propriétés ne peuvent pas être modifiées à l'aide de la commande AppleScript.

Voyons maintenant comment les commandes sont décrites dans le dictionnaire. Par exemple, prenons le script « Make » que vous connaissez déjà parmi des exemples de scripts. En haut de la page se trouve le but de la commande (créer un nouvel élément). Ensuite - comment il est écrit (syntaxe) et quels paramètres il possède. Notez que certains paramètres sont mis entre crochets. C'est ce qu'ils veulent dire dans le dictionnaire facultatif paramètres. Lors de la composition d’un script, nous pouvons nous en passer, mais si nous les utilisons, nous n’avons pas besoin de mettre de parenthèses. Complète l'aide d'une commande en l'indiquant résultat(Résultat). Dans notre exemple, il s'agira d'une « référence » à l'objet créé.

Voici. Vous pouvez déjà essayer d'écrire un script simple. Donc…

Ô créateur !

Je pense que vous savez que chaque fichier sur un Macintosh a deux caractéristiques : un type et un code créateur, qui permettent au Finder de décider comment gérer ce fichier. Ce n’est également un secret pour personne que ces attributs sont souvent perdus, par exemple après une transmission sur Internet. Bien entendu, il existe de nombreux programmes qui peuvent les modifier. Mais essayons de créer notre propre utilitaire, en utilisant uniquement ce qui est déjà inclus dans Mac OS.

Commençons par l'option la plus simple. Supposons que nous devions attribuer au fichier letter.txt, situé sur le bureau, le type « TEXTE » et le code créateur « ttxt » (SimpleText).

Sélectionnez l'objet fichier dans le dictionnaire du Finder. Nous trouvons les propriétés dont nous avons besoin : type de fichier et type de créateur. Pour modifier la valeur d'une propriété particulière, utilisez la commande « setraquo ; (installer). L'ensemble du script devrait donc ressembler à ceci :

dire application "Recherche" dire fichier "lettre.txt"
ensemble son type de fichier à"TEXTE"
ensemble son type de créateur à"ttxt"
fin dis

Ou comme ceci :

dire application "Recherche"
ensemble type de fichier de fichier "lettre.txt" à"TEXTE"
ensemble type de créateur de fichier "lettre.txt" à"ttxt"
fin dis

Ainsi, comme vous pouvez le constater, vous pouvez soit demander au fichier de modifier ses (ses) propriétés (dans cet exemple, le mot « son » peut être omis, puisque le but de la commande est clairement défini sans lui), soit le Finder Le programme peut modifier les propriétés de l'objet subordonné.

Ce n'est pas pour rien que j'ai posé la condition que le fichier soit sur le bureau. Sinon, nous avions besoin d'une « chaîne » plus longue d'objets subordonnés (quelque chose comme « dire à l'application « Finder » de dire au disque « Macintosh HD » de dire au dossier « leçon » de dire au fichier « letter.txt » »). Ou - pour la deuxième version du script - une indication chemin complet: « fichier « Macintosh HD:lesson:letter.txt » » (Rappelez-vous : le chemin sous Mac OS est écrit à l'aide de deux-points).

Eh bien, le scénario est écrit. Ça marche. Mais franchement, cela ne présente aucun avantage - après tout, pour chaque fichier suivant, vous devez modifier le texte du script lui-même. Wow, ça a rendu le travail plus facile ! Nous devons améliorer notre programme. Apprenons-lui à demander à l'utilisateur quel fichier traiter. Ouvrez le dictionnaire Finder, regardez et voici ceux-là ! Rien de convenable. Apple a-t-il vraiment commis une telle erreur ? Pas du tout...

"Tu n'as pas le même, mais avec des boutons en nacre ?"

Open Script Architecture (OSA) vous permet d'acquérir presque tous les éléments nécessaires du langage. Bien sûr, si quelqu'un prenait la peine d'écrire "ajout"(Scripting Addition ou OSAX) qui décrit un tel objet et les commandes correspondantes. Ces ajouts se trouvent dans le dossier Scripting Additions, situé dans le dossier Système (anciennement dans Extensions). N'importe quel script peut les utiliser, quel que soit le programme dans lequel il se trouve. à l'heure actuelle commandes.

Ouvrons le dictionnaire Standard Additions (pour accéder rapidement au dossier Scripting Additions, il y a un bouton spécial dans la boîte de dialogue Ouvrir le dictionnaire). La voici - la commande « choisir un fichier ». Le résultat de son travail sera un lien vers le fichier sélectionné par la personne dans la boîte de dialogue Ouvrir standard. Nous enregistrerons ce lien dans une variable, que nous appellerons par exemple MyFile.

Notre script ressemblera à ceci :

dire application "Recherche"
ensemble MonFichier à choisir un fichier
ensemble type de fichier de MonFichier à"TEXTE"
ensemble type de créateur de MonFichier à"ttxt"
fin dis

Programme tout à fait réalisable. Mais est-il possible de rendre cela plus pratique ? Pourquoi exécuter le script séparément, puis sélectionner le nom du fichier dans la boîte de dialogue : n'est-il pas préférable d'utiliser la méthode Drag'n'Drop ? Tout est en notre pouvoir !

Écriture de gouttelettes

Alors, que voulons-nous obtenir et comment y parvenir.

  1. Le programme doit fonctionner indépendamment de l'éditeur de script. Tout est clair avec cela, on sait déjà que pour cela il faut le sauvegarder sous forme d'applet.
  2. Le but du script est de modifier les propriétés d'un fichier donné. Nous avons déjà cette partie prête.
  3. Le fichier « dessiné » sur l’image du script doit être traité. C'est là que le plaisir commence. Diverses choses arrivent constamment aux objets « vivant » dans notre ordinateur. événements. Par exemple, le fichier peut être déplacé, copié ou ouvert. Le programme démarrera, exécutera certaines commandes ou ne fera rien, et finalement se terminera. Pour qu'un objet « sache » comment réagir à un événement particulier, un sous-programme spécial est nécessaire - "gestionnaire"(manieur). Lorsque des fichiers, des dossiers ou des lecteurs sont « lancés » sur l'applet, le Finder lui envoie un message de commande « Ouvrir » et une liste d'objets « lancés ». C'est pour cet événement que nous devrons écrire un handler.

Dans le cas le plus simple, cela ressemblera à ceci :

sur ouvrir la liste des fichiers — le mot « on » commence le gestionnaire d'événements
— au début, le script fonctionne tout seul sans affecter aucun programme
ensemble MonFichier à article 1 de Liste des fichiers
dire application "Recherche" - maintenant nous commandons le Finder
ensemble type de fichier de MonFichier à"TEXTE"
ensemble type de créateur de MonFichier à"ttxt"
fin dis
fin ouvrir - n'oubliez pas d'indiquer que le handler est terminé

Pour stocker temporairement la liste, nous avons utilisé la variable FileList. Les variables peuvent être nommées en utilisant n'importe quelle combinaison de lettres latines, mais il est conseillé de les nommer de manière à ce que vous puissiez comprendre à partir du nom ce que signifie cette variable.

Comme vous pouvez le constater, le premier élément de la liste passé au lancement du script est traité. Et le reste ? Notre programme n’y prête tout simplement pas attention. Il n'est pas difficile de deviner que la prochaine étape sur le chemin de la perfection consistera à traiter tout un tas de fichiers à la fois.

Une fois, une fois, encore...

Jusqu'à présent, toutes les commandes de nos scripts étaient exécutées une à une dans l'ordre dans lequel elles ont été écrites. Nous devons maintenant répéter les mêmes actions plusieurs fois de suite. Nous devrons organiser une structure spéciale - faire du vélo. AppleScript propose une variété de commandes de contrôle pour cela. Vous pouvez répéter des actions à l'avance un nombre de fois spécifié ou les exécuter lorsqu'une certaine condition est remplie. Mais presque tous les langages de programmation comportent de telles boucles. Dans notre tâche, une autre option est idéale : « répéter pour chaque élément de la liste ». Avec cela, le script ressemblera à ceci :

sur ouvrir la liste des fichiers
répéter avec MonFichier dans Liste des fichiers - c'est ainsi que s'écrit le début d'un cycle
dire application "Recherche"
ensemble type de fichier de MonFichier à"TEXTE"
ensemble type de créateur de MonFichier à"ttxt"
fin dis
fin de la répétition — nous devons marquer la fin de la structure de contrôle
fin ouvrir

De quoi d’autre notre programme a-t-il besoin pour devenir complètement professionnel ? Et elle n'en a pas assez "infaillible". Après tout, vous pouvez « jeter » des dossiers et des raccourcis sur l’image du script, mais cela ne devrait fonctionner qu’avec des fichiers normaux.

Qui tu veux, choisis

Par conséquent, lorsque vous parcourez les éléments de la liste, vous devez déterminer ce qu'est chacun d'eux. Seulement si vous rencontrez un fichier normal, modifiez ses propriétés. Une autre structure de contrôle vous permet de choisir d'effectuer ou non des opérations - opérateur conditionnel Si. Vous pouvez déterminer si un objet est un dossier ou un raccourci en obtenant des informations à son sujet à l'aide de la commande « info pour » de Standard Additions. Le résultat sera un objet de la classe « file information ». Ce sont ses propriétés - « dossier ? » (dossier) et « raccourci ? (alias) - nous allons vérifier. Parce que nous avons besoin que l'élément ne soit pas un dossier ET n'était pas un raccourci, nous allons relier deux conditions opération logique"et" (quand il suffit de remplir l'une des conditions - OU d'abord, OU la seconde - utilisez le connecteur « ou »). En général, à la suite de notre raisonnement, le script suivant a été obtenu :

sur ouvrir la liste des fichiers
répéter avec MonFichier dans Liste des fichiers
ensemble l'Info à informations pour MonFichier
si(dossier de l'Info est FAUX) et ¬
(alias de l'Info est FAUX) alors
dire application "Recherche"
ensemble type de fichier de MonFichier à"TEXTE"
ensemble type de créateur de MonFichier à"ttxt"
fin dis
finir si
fin de la répétition
fin ouvrir

Veuillez noter que toutes les conditions de la déclaration If doivent être écrites en une seule ligne. Pour rendre le texte du programme plus lisible, il peut être utile de « plier » une longue ligne, comme dans cet exemple. Pour ce faire, appuyez sur la combinaison de touches « Option-Retour ». Le symbole de suite « ¬ » apparaîtra dans le texte.

Bien sûr, dans cette courte leçon, je n'ai pu que vous présenter un peu les techniques les plus simples pour travailler avec AppleScript. Mais je pense que vous êtes convaincu qu’il n’y a rien de compliqué là-dedans. Essayez-le ! J'espère continuer ce sujet dans les prochains articles.

Il s'agit d'un langage de programmation, une technologie appartenant à l'entreprise, qui est le plus souvent utilisé pour automatiser les processus de travail et qui permet aux programmes de communiquer entre eux. Ouah :)

Je ne vais pas ouvrir une série d'articles sur le sujet : « Applescript pour les nuls. Pas à pas" pour une raison simple : il existe de nombreux documents sur ce sujet sur Internet. Et pour ne pas réécrire l'abécédaire à ma manière et ne pas réinventer la roue, je n'indiquerai que quelques sources qui m'ont semblé les plus adaptées. J'en serai moi-même éclairé.

Presque tous les auteurs écrivent que le langage de script est si simple que tout utilisateur ayant au moins un peu de connaissance de l'anglais traditionnel peut y écrire. Et vous n'êtes pas obligé de maîtriser tous les aspects de la programmation orientée objet. Il y a une part de vérité là-dedans, car dans le scénario

dites à l'application "Finder"

afficher la boîte de dialogue "Bonjour les somnambules !"

Il est difficile de ne pas comprendre ce qui est requis de quel programme. Mais je ne suis pas tout à fait d’accord sur la POO. Si vous écrivez des choses aussi inutiles que bip ou dites « Qui est cet homme ? » , alors oui, vous ne savez peut-être pas ce que sont un cycle et une classe, et la POO en est encore loin. Mais si vous souhaitez apprendre à écrire des programmes ou des scripts pour faciliter vos tâches quotidiennes ou celles d'une base de données, il est préférable que vous sachiez ce que sont « l'héritage » et « l'encapsulation ».

Par où commencer ?

Tout est simple et à portée de main. Lancez l'éditeur de script et accédez d'abord à l'aide. Si vous utilisez la version russe, il ne devrait y avoir aucune difficulté.

Qui veut un livre ?

Si le manuel standard ne suffit pas, ou s'il est rédigé de telle manière que tout n'est pas immédiatement clair pour vous, vous pouvez également vous tourner vers des livres (électroniques ou imprimés, à vous de décider). Le livre « AppleScript Language Guide » est souvent mentionné. Il s'avère qu'il existe un lien vers celui-ci dans l'aide de l'éditeur de script.

Il est impossible de ne pas prendre en compte les autres ressources que la société de développement elle-même nous propose. Il existe un livre pour débutants « AppleScript 1-2-3 » ou vous pouvez l'acheter du même nom.

Plus c'est gros, mieux c'est

Pourquoi ne pas envisager des ressources en ligne ? Après tout, vous pouvez trouver ici les dernières nouveautés et ils répondent plus souvent et plus rapidement aux avis des lecteurs. Cherchons de la littérature dans une langue accessible.

En plus de divers articles de synthèse, vous pouvez trouver « » sur Internet. Je dirais que ceux-ci sont spécifiquement destinés à ceux qui s'intéressent à AppleScript. Le livre s'adresse aux débutants, il est écrit simplement, il y a peu de pages, mais les exemples sont nombreux. Juste ce dont vous avez besoin. Là, vous pouvez également télécharger un livre intitulé « ».

Les manuels russes sont bons, mais sans connaissance de base de l'anglais, il sera, pour le moins, difficile d'apprendre le langage de script.

Parmi les articles, je ferais attention à celui-ci. Je l'ai apprécié pour sa présentation détaillée de certains des principes de base du langage de script lui-même, « courte et claire ».

N'oubliez pas non plus les différents forums où les utilisateurs échangent des opinions, des expériences et des scripts prêts à l'emploi. Personnellement, j'ai celui-ci dans mes favoris.

Avant de commencer à rechercher et à télécharger du matériel, je vous recommande de décider de votre objectif. Pour un développement général, vous pouvez vous familiariser avec certaines sources. Pour écrire des scripts vraiment utiles, vous devrez y consacrer plusieurs jours/semaines/mois (en fonction de vos capacités et de votre temps libre). C'est très intéressant et addictif.

Je ne peux pas aujourd’hui estimer les chances d’une personne d’obtenir un emploi de programmeur ou de testeur Applescript. Probablement pas très grand. Mais si vous sentez que c'est le vôtre, allez-y. Si vous voyez l’objectif et ne voyez pas les obstacles, peu importe qui en a besoin (du moins vous). Le vrai talent sera toujours apprécié. Et vous avez la chance de faire le travail que vous aimez.

  • AppleScript Apple, . AppleScript AppleScript. , - .

    AppleScript.

    0 . . . . . . . . . . . . . . . . . . . . . 6

    1 . . . . . . . . . 7

    2 . . . . . . 10

    3 (I) . . . . . . . . 13

    4 . . . . . . . . . . . . . . . . . . . . . 15

    5 . . . . . . . . . . . . . . . . . . . . . 17

    6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    8 (II). . . . . . . 30

    9 ? ! . . . . . . . . 32

    10 . . . . . . . . . . . . . . . . . . 34

    11 . . . . . . . . . . . . . . 40

    13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    14 . . . . . . . . . . . . . . . . . . . 53

    16 . . . . . . . . . . . . . . . . 59

    17 . . . . . . . . 60 . . . . . . . . 60

    AppleScript Apple, . , AppleScript :

    AppleScript, AppleScript. , -, .

    AppleScript, . - AppleScript ( Adobe Photoshop, QuarkXPress, Adobe InDesign). FileMaker Pro. , GraphicConverter, BBEdit, Microsoft Word AppleScript(). , AppleScript. , . . , AppleScript, AppleScript. , - AppleScript.

    . (.15). - AppleScript. , .

    AppleScript, AppleScript :

    , ; AppleScript, .., AppleScript ; (Mac OS X)

    AppleScript ; AppleScript ; AppleScript (Mac OS X).

    AppleScript. , Java, . AppleScript, 10-, -. .

    5 AppleScript, . - AppleScript Studio, (Outils de développement XCode).

    Javascript, .

    () . , . , . , .

    . , : . - . , . : .

    AppleScript, . . Éditeur de scripts (.2), ​​​​​​.

    Copyright (c) 2003 par Bert Altenburg

    : Bert Altenbourg, - .

    1. . , - . , AppleScript. AppleScript.

    2. , PC, . - , -. Moniteur CPU (utilitaires, applications), - . (Informatique distribué DC), Folding@home, . DC-, - . DC-. -- , DC- . , . ? DC- - . (), - . , - , . DC-- : , . , DC- :

    www.aspenleaf.com/distributed/distrib-projects.html

    3. . , . () , - . - , . - , . - , :

    http://www.macinstruct.com/tutorials/crash/index.html

    AppleScript Mac OS. , - . , .

    , -. , (déclaration), . , .

    AppleScript, . , 1.

    AppleScript :

    dites "Ceci est une phrase parlée".

    Fred, Trinoïdes, Violoncelles, Zarvox, Victoria.

    dites "Ceci est une phrase parlée". en utilisant "Zarvox"

    : AppleScript. , . , Victoria Zarvox.

    AppleScript. - , - . : . AppleScript - , . AppleScript, . (scriptable). , AppleScript (Mac OS X), .

    Chercheur. Chercheur. , . Chercheur , - , . -, Corbeille, Finder.

    8, AppleScript.

    Adobe PhotoShop. PhotoShop. , Chercheur.

    AppleScript, .

    Dites, AppleScript (Mac OS X), Finder. AppleScript (Mac OS X) , - fin tell . Rechercheur AppleScript Finder, . , :

    dites à l'application "xyz"

    (dire bloquer). xyz xyz. , AppleScript , - , . , . (, ("). : , AppleScript . . .)

    Chercheur. , Chercheur. Chercheur, chercheur.

    dire à l'application "Finder" vider la corbeille ouvrir le disque de démarrage terminer dire

    Chercheur. Chercheur, - , . .

    Finder, AppleScript (Mac OS X).

    9dire à l'application "Finder" de vider la corbeille ouvrir le disque de démarrage et de terminer le bip sonore

    Chercheur. bip AppleScript. , .

    Bip (AppleScript (Mac OS X)) .

    dire à l'application "Finder" vider le bip de la corbeille ouvrir le disque de démarrage terminer dire

    Bip du Finder, AppleScript (Mac OS X). , . , -, Finder, bip, Finder.

    AppleScript (Mac OS X). - , Chercheur, . ().

    dire à l'application "Finder" de vider le bip de la corbeille et de terminer l'ouverture du disque de démarrage

    AppleScript (Mac OS X), . () - , .

    dites à l'application "Finder" de vider la corbeille et dites d'ouvrir le disque de démarrage dites "J'ai vidé la corbeille et ouvert le disque de démarrage pour vous" en utilisant "Victoria"

    AppleScript (Mac OS X), Finder. , .

    Éditeur de scripts, . Éditeur de script AppleScript, Applications. , . .

    Compiler. , AppleScript , AppleScript . Yo Finder ! Jette mes déchets (Finder !!) Hey Finder ! Nettoyez la corbeille (Finder,) Finder. (compilation) AppleScript (Mac OS X) : - . , . , - . Éditeur de scripts.

    AppleScript (Mac OS X).

    dites "J'apprends AppleScript en toute simplicité!" en utilisant "Zarvox"

    Courir, . Éditeur de scripts, !

    Entrer. Entrez - Espace () (). Retour (Maj) -. Retour .

    Compiler. - Courir, .

    Exécutez, Commande-R. : , -

    , (script compilé) (application).

    : , - AppleScript,

    Exécution de l'éditeur de script.

    : , AppleScript ,

    Éditeur de scripts. , - , (Préférences Système). , . - , Éditeur de script, Ouvrir un fichier.

    : Enregistrer, - (exécution uniquement). , - .

    dire à l'application "Finder" de vider la corbeille et de dire

    Éditeur de scripts.

    Application , :

    Application d'application Éditeur de script. , xyz. - (-), pqr. - , AppleScript. , AppleScript pqr , dites .

    Éditeur de scripts, -. , contrôle . :

    1) Éditeur de script de contrôle. (.), Dites aux blocs. , Dites "Finder".

    2) Le Finder vide la corbeille, (), 1. . - .

    2 + 6 = ...... = 3 * 4

    2 + 6 = xy = 3 * 4

    AppleScript. (variables) , . - (identifiants), . - AppleScript, défini.

    définir x sur 25 définir y sur 4321.234

    AppleScript, . : (- , (insectes)). , X. , largeurimage .

    définir la largeur de l'image sur 8

    , (, -,). , AppleScript, - . , (8).

    AppleScript-. , réglez, disons, sur, bip , - AppleScript. , largeur de l'image, . -, .

    AppleScript, . , .

    définir PictureWidth sur 8, définir PictureHeight sur 6, définir PictureSurfaceArea sur PictureWidth * PictureHeight

    , (opérateurs), - .

    définir cubeEdgeLength sur 10,0 définir cubeVolume sur cubeEdgeLength ^ 3

    Éditeur de scripts, . , . (Résultat) , 10,0. , 1000,0. , longueurCubeEdge ^ 3 , .

    : . - . (entiers) , - , (. 13)

À partir de cet article, vous apprendrez ce qu'est AppleScript, pourquoi et qui en a besoin, comment vous pouvez automatiser les applications d'autres personnes et ajouter des capacités d'automatisation aux vôtres.

Automatisez-le

Il existe souvent des problèmes pour lesquels il est irrationnel de créer un projet séparé dans un langage compilé. Par exemple, lorsque vous avez besoin de créer rapidement un code à genoux qui doit simplement effectuer un travail spécifique - sans aucune décoration graphique, sans gérer toutes sortes de situations d'exception, d'optimisation, etc. C'est là que les langages de script viennent à la rescousse - Shell, Perl, PHP, etc., vous savez. Tous (ou presque) sont disponibles sous Mac OS X. Mais dans ce système d'exploitation, en plus des langages de script généralement acceptés, il existe également un langage de script spécial orienté spécifiquement vers Mac OS X et étroitement lié à il. C'est AppleScript.

AppleScript est inclus dans le système depuis le Système 7. Issu du projet HyperCard (qui contenait le langage de script HyperTalk, très similaire à l'anglais naturel), AppleScript a été créé à l'origine pour permettre l'échange de données entre les tâches, ainsi que pour contrôler travail applications tierces. AppleScript lui-même a des fonctionnalités assez modestes : dans ce langage, même les scripts permettant d'effectuer des tâches relativement simples ressemblent souvent à des appels vers d'autres applications. Cependant, après une refonte importante du système lors de la transition vers la gamme Mac OS X, le langage AppleScript est devenu plus flexible et plus puissant, et le nouveau framework Cocoa a permis aux développeurs d'intégrer des capacités d'automatisation dans leurs applications à l'aide d'AppleScript avec un minimum d'effort.

Script simple

Pour éditer et exécuter des scripts, nous utiliserons l'éditeur de script standard. Vous pouvez le trouver dans le dossier /Application/AppleScript. Tout d'abord, écrivons un simple script « HelloWorld ».

afficher l'alerte "Hello World!" # Afficher le dialogue
dites "Hello World" # Sortie vers les colonnes

Je pense qu'il n'est pas nécessaire d'expliquer quoi que ce soit ici, mais je voudrais souligner l'accès extrêmement simple au synthétiseur vocal depuis AppleScript à l'aide de la commande say. C'est une vraie communication avec l'utilisateur à la manière d'Apple :). Bien entendu, ce dialogue peut être facilement personnalisé. Par exemple, ajoutez les boutons nécessaires :

Panneau avec boutons supplémentaires

afficher l'alerte "Hello World!" boutons ("Bonjour", "Au revoir")
définir la réponse au bouton renvoyé du résultat
si la réponse est "Bonjour", alors
...
autre
...
finir si

Écrivons maintenant quelque chose de plus utile. Par exemple, laissons l'utilisateur sélectionner un fichier et lire son contenu :

# Panneau de sélection de fichiers
définissez le fichier sur (choisissez le fichier avec l'invite "Sélectionner un fichier à lire :" de type ("TEXTE"))
ouvrir pour accéder au fichier

Lire le contenu

définir fileContents sur (lire le fichier)
fermer accéder au fichier

Ces exemples montrent clairement l'idée principale d'AppleScript : il est très proche de la langue anglaise vivante. Par conséquent, lire des scripts est facile même pour une personne loin de coder. Chaque commande verbale peut être complétée par des noms modificateurs et des paramètres.

Interaction avec les applications

AppleScript utilise un mécanisme de messagerie pour communiquer avec d'autres applications :

dire à l'application "Microsoft Word"
quitter
fin dis

A l'aide de la commande tell, nous sélectionnons l'application à laquelle nous enverrons le message. DANS dans ce cas nous demandons à MS Word de quitter. N'importe quel nombre de commandes peut être envoyé dans le bloc "tell - end tell". Les messages envoyés à l'application peuvent être plus spécifiques. Tout dépend des commandes implémentées par ses développeurs. iTunes, par exemple, exporte un certain nombre de commandes et de propriétés vers l'environnement AppleScript :

Lancez la playlist souhaitée dans iTunes

dites à l'application "iTunes"
lire la playlist nommée "My Favorite"
fin dis

Vous pouvez connaître l'ensemble des messages et des types de données qu'une application exporte vers l'environnement AppleScript en consultant sa terminologie (le fichier AppName.scriptRerminology dans les ressources de l'application). Pour cela, dans l'éditeur de script, allez dans le menu « Fichier - Ouvrir le dictionnaire -… » et sélectionnez l'application souhaitée.

Pour vous permettre de travailler plus facilement avec les classes et les commandes exportées par l'application, celles-ci sont organisées en sections. Toutes les applications prenant en charge les scripts comportent au moins deux sections : une standard et une plus spécifique à cette demande sections. La section standard contient un ensemble de commandes standard prises en charge par toute application Mac : ouvrir, imprimer, fermer et quitter. Le contenu des sections restantes dépend de l'imagination des développeurs.

Exécuter AppleScript depuis votre application

Si vous écrivez une application en Objective-C/Cocoa, il est possible que certaines choses soient plus pratiques à réaliser avec AppleScript. Pour créer et exécuter des scripts dans les applications Cocoa, il existe la classe NSAppleScript. Voici un exemple simple de son utilisation - la mise en œuvre de l'obtention d'une ligne de statut utilisateur à partir de l'application iChat.

NSAppleScript *iChatGetStatusScript = nul ;
iChatGetStatusScript = [ initWithSource: @"dire à l'application "iChat" d'obtenir le message d'état"];
NSString *statusString = [stringValue];

Il est possible que la même chose puisse être faite d'une autre manière sans utiliser de script généré à l'exécution, mais il est peu probable que le code alternatif semble plus simple que cela. Si les scripts sont volumineux, vous pouvez les stocker dans des ressources groupées et les lire si nécessaire.

Automatisation dans une application Cocoa

Il est très utile d'ajouter le support des scripts à vos applications Cocoa, car si votre application dispose d'une interface avec AppleScript, alors l'utilisateur, en écrivant quelques lignes en AppleScript, pourra la personnaliser selon ses besoins et l'intégrer à d'autres applications. qu'il a installé, puis, par exemple, automatiser la solution des tâches de routine. Pour exporter des types et des commandes vers l'environnement AppleScript, vous devez les décrire dans fichiers spéciaux. Il est possible de le faire dans les fichiers .scriptSuite et .scriptTerminology ou dans un seul fichier avec l'extension .sdef. Dans les deux cas, les fichiers sont au format XML, mais sdef est plus facile à utiliser.

Le contenu du fichier scriptTermonology est affiché dans l'éditeur de script lors de l'affichage du dictionnaire d'application. Ce fichier contient une description des objets exportés vers AppleScript.

En ouvrant le fichier scriptSuite dans l'éditeur Plist, vous pouvez voir qu'il contient les sections principales suivantes :

  • AppleEventCode - un code à quatre lettres qui identifie l'application pour l'environnement AppleScript (le code doit être unique au sein du même système) ;
  • Nom : le nom de la section contenant les commandes et classes exportées.

Il ne sert à rien de démonter la structure interne de ces fichiers, puisque vous n'aurez probablement affaire qu'à des fichiers sdef.

Exemple de fichier sdef
















sdef mélange la terminologie des scripts avec des descriptions détaillées des commandes et des types, qui peuvent être trouvées dans les fichiers .scriptingSuit. Mettons cela en pratique en créant une application Cocoa prenant en charge AppleScripting. Pour ce faire, dans le nouveau projet Cocoa, ajoutez les drapeaux Scripting et OSAScriptingDefinition avec le nom de notre fichier sdef au fichier Info.plist :

...
NSApleScriptEnabled

OSAScriptingDéfinition
Scripting.sdef

Ajoutons le fichier Scripting.sdef suivant au projet :












Ainsi, depuis AppleScript, nous avons une propriété disponible - myprop. Il ne reste plus qu'à écrire du code ObjC qui traitera la lecture de cette propriété à partir des scripts. Pour ce faire, nous devons créer la catégorie NSApplication, puisque c'est la classe que nous avons choisie comme destinataire des messages des scripts.

#importer
@interface NSApplication (Scripting) - (NSString *) myprop;
@fin
@implementation NSApplication (Scripting) - (NSString *) myprop
{
return @"Ceci est ma propriété" ;
}

Si nous nous tournons maintenant vers les propriétés de notre application depuis AppleScript, nous verrons parmi elles notre propriété et sa valeur :

dire à l'application "Scripting"
propriétés
fin dis

Conclusion

Bien entendu, il est impossible de décrire ici toutes les capacités d'AppleScript et son interaction avec les applications Cocoa. Oui, ce n’est pas nécessaire – il existe des manuels pour cela. Et nous, pour notre part, continuerons la série d'articles sur le codage pour les plateformes Apple et vous dirons bien d'autres choses nouvelles et intéressantes.

© 2024 ermake.ru -- À propos de la réparation de PC - Portail d'information