Comment utiliser les scripts d'interface utilisateur d'Applescript sur Mac

Comment utiliser les scripts d'interface utilisateur d'Applescript sur Mac / Mac

Si vous aimez utiliser Mac OSX Applescript, vous avez probablement déjà remarqué certaines limitations. À savoir que tous les programmes ne peuvent pas être manipulés directement avec Applescript. Vous pouvez toutefois utiliser les scripts de l'interface utilisateur d'Applescript pour combler les lacunes si vous savez comment procéder..

Il est possible d’utiliser Applescript pour contrôler l’interface utilisateur de n’importe quel programme sur votre Mac. Parfois, c'est un peu difficile, mais c'est en effet possible. Je vais vous montrer les bases pour le faire vous-même et vous guider à travers un script simple en utilisant ces techniques..

Repoussez d'abord Applescript de base

Si vous êtes nouveau dans Applescript ou que vous n’avez pas consulté la documentation depuis un moment, rafraîchissez-vous Apprendre à automatiser votre Mac avec AppleScript [Partie 1: Introduction] Apprendre à automatiser votre Mac avec AppleScript [Partie 1: Introduction] En savoir plus sur votre Connaissance de Applescript 6 Ressources pour débutants pour apprendre la programmation Mac 6 Ressources pour débutants pour apprendre la programmation Mac Lire plus avant de lire ce guide.

Je vais ajouter des captures d'écran qui couvrent autant que possible, mais cet article concerne les détails les plus fins, pas les bases d'Applescript (que nous avons déjà couvert).

Activer les scripts d'interface utilisateur

Avant de pouvoir utiliser les scripts de l'interface utilisateur, allez à Préférences Système, Accès Universel et cochez la case pour permettre l'accès aux dispositifs d'assistance.

Utilisation de traits clés

Le moyen le plus simple d'interagir avec l'interface utilisateur d'un programme avec Applescript est de simuler la frappe au clavier, comme si vous utilisiez des raccourcis Mac et des commandes de frappe..

Par exemple, dans TextEdit, vous souhaiterez peut-être effectuer une recherche par remplacement. Vous savez probablement déjà que vous pouvez taper CMD-F pour Rechercher / Remplacer, saisir le terme recherché, appuyer sur la touche de tabulation pour passer au champ suivant, saisir le terme de remplacement, puis appuyer sur “Remplace tout” remplacer le texte.

Dans Applescript, vous pouvez également indiquer à l'interface utilisateur de taper ces commandes. Vous communiqueriez CMD-F par la commande frappe “F” using command down avec Applescript. Notez également que la manière d’exécuter CMD-SHIFT-S est frappe “s” utiliser commande vers le bas, décaler vers le bas. Vous pouvez également taper dans l'interface utilisateur avec Applescript en utilisant frappe “mon texte”, où votre texte est entré entre les guillemets. Enfin, vous pouvez taper quelques touches simples telles que TAB, comme ceci: touche de frappe.

Avant d'utiliser la commande de frappe, vous devez vous assurer que la classe de processus est appelée (et n'oubliez pas de mettre fin à ces commandes plus tard)..

dire application “Événements système”
dire processus “TextEdit”

Voir la capture d'écran pour les commandes complètes de cette action de base recherche / remplacement en séquence..

Cliquer sur les boutons

Lorsque votre programme dispose d'un certain nombre de boutons, vous pouvez normalement utiliser une simple commande Applescript pour les contrôler. Dans le cas de la recherche / remplacement, vous pouvez cliquer sur “Remplace tout”. La commande pour ceci est cliquer sur le bouton “Remplace tout”.

Manipulation d'interface graphique plus complexe

Comme beaucoup de programmes Mac n'ont pas été conçus pour être gérés par Applescript avec le script d'interface utilisateur, vous devez parfois chercher pour trouver ce que vous cherchez. Pour ce faire, utilisez le programme gratuit appelé UIElementInspector.

Une fois que cela est en cours d'exécution, vous pouvez inspecter n'importe quel élément de l'interface utilisateur que vous souhaitez. L'inspecteur d'éléments d'interface utilisateur vous montrera en permanence les détails de tout élément survolé..

Regardez cet exemple et vous pouvez voir la hiérarchie. Le menu contextuel fait partie d'un groupe, qui fait partie d'un autre groupe, qui fait partie d'une feuille, qui fait partie d'une fenêtre. Notez qu'il est également décrit comme un bouton contextuel, plutôt qu'un menu.

Voyons maintenant comment cela est représenté dans le script:

dire au groupe 1 du groupe 1 de la feuille 1 de la fenêtre 1
dire bouton pop-up 1
Cliquez sur

Comme vous pouvez le constater, pour que le script fonctionne, vous devez ajouter un peu de bon sens et un peu d'essais et d'erreurs..

Dans ce cas, je voulais enregistrer le document au format RTF. J'ai utilisé une commande de frappe pour ouvrir le “Enregistrer sous” la fenêtre. Cela plane au-dessus du fichier “Exemple” fenêtre, mais l'inspecteur d'éléments d'interface utilisateur semble ignorer cette fenêtre supplémentaire. Néanmoins, pour exécuter le script, vous devez appeler la fenêtre 1 à l’action, pas la fenêtre. “Exemple”.

Vous devez également vous rappeler d'inclure chaque petit clic que vous feriez normalement. Dans ce cas, vous devez vous rappeler de cliquer sur le menu contextuel avant de pouvoir demander à ce menu de choisir un élément de menu..

Il faut un peu de travail pour déterminer exactement ce que vous devez écrire dans le script de l'interface utilisateur que vous essayez d'utiliser, mais avec de la patience et un peu de conjecture, vous pourrez y parvenir. J'espère qu'en vous ouvrant les yeux sur cette possibilité, vous serez en mesure de créer d'autres Applescripts utiles, à utiliser seuls ou dans Automator. Apprenez à utiliser Mac Automator avec 6 exemples de flux de travaux pratiques Apprenez à utiliser Mac Automator avec 6 flux de travaux d'exemples pratiques et la créativité est tout ce dont vous avez besoin pour commencer à automatiser votre Mac - vous n'avez pas besoin de connaître une seule ligne de code. Lire la suite .

Quelles sont vos façons préférées d'utiliser Applescript? Pourriez-vous améliorer ces scripts avec certains scripts d'interface utilisateur? Faites le nous savoir dans les commentaires!

En savoir plus sur: Applescript, Computer Automation, Programming.