12 votes

Comment faire fonctionner un fichier AppleScript existant en tant que service ?

J'ai créé un AppleScript, je l'ai enregistré comme fichier dans un dossier spécifique de mon disque dur. Maintenant, je veux lui attribuer un raccourci et il semble que je doive créer un service via Automator, mais la fonction Run AppleScript me demande de mettre le code à l'intérieur, alors que je veux exécuter le fichier .scpt déjà existant. Comment faire ?

11voto

jaume Points 13186

Oui, Automator est la meilleure option ici. Pour créer le service, suivez ces étapes :

  1. Ouvrez Automator et sélectionnez Service :

    enter image description here

  2. Recherchez "applescript" et faites glisser l'action vers le volet de droite :

    enter image description here

  3. Changement Service receives selected text a Service receives no input afin qu'il apparaisse toujours dans le menu Services :

    enter image description here

  4. Remplacer (* Your script goes here *) avec :

    do shell script "/usr/bin/osascript /path/to/your/script.scpt"

    si vous souhaitez exécuter votre .scpt fichier. Notez que osascript ne peut pas gérer l'interaction avec l'utilisateur comme l'affichage d'une fenêtre de dialogue :

    enter image description here

    Pour surmonter cette limitation, il faut utiliser cette solution de contournement ou simplement remplacer (* Your script goes here *) avec le contenu de votre script.

  5. Sauvegardez-le :

    enter image description here

  6. Si vous le souhaitez, vous pouvez attribuer un raccourci à votre nouveau service. Sélectionnez Services>Préférences des services dans le Finder (ou toute autre application ouverte) :

    enter image description here

  7. Attribuez un raccourci pas si courant :

    enter image description here

  8. Votre service est maintenant accessible depuis n'importe quelle application grâce au raccourci que vous avez attribué à l'étape précédente :

    enter image description here

Si jamais vous voulez vous débarrasser du service, ouvrez ~/Library/Services supprimez le service et videz la corbeille :

enter image description here

4voto

alexwlchan Points 2557

Dans le script, ajoutez un on run argument :

on run
    -- do whatever the script does
end run

Vous pouvez ensuite utiliser l'action "Run Shell script" d'Automator, avec l'option osascript commandement :

osascript /path/to/script.scpt

osascript est une commande qui exécute AppleScript dans le shell. Vous avez besoin des lignes du script pour permettre l'exécution du script en dehors de l'éditeur AppleScript.

3voto

Peter Points 31

Peut-être voudriez-vous jeter un coup d'oeil à Ce service qui vous permet de "créer des services Mac OS X à partir de n'importe quel script".

2voto

Je ne recommanderais pas de créer des services Automator pour attribuer des raccourcis aux scripts. Il y a un bug dans les versions 10.7 et 10.8 où les raccourcis clavier pour les services Automator ne fonctionnent pas toujours jusqu'à ce que vous survoliez le menu des services depuis la barre de menu. Il y a également un délai relativement long (peut-être 0,1 à 1 s) avant que les services ne soient exécutés.

Voir cette réponse pour d'autres façons d'attribuer des raccourcis clavier aux scripts. J'utilise moi-même FastScripts et Alfred.

2voto

markhunte Points 11634

Vous pouvez exécuter le script existant avec un simple service d'automatisation comme celui-ci. Et assigner votre raccourci depuis les raccourcis clavier comme d'habitude. Rappelez-vous simplement que certaines applications peuvent avoir besoin d'être relancées avant qu'elles ne prennent en compte les raccourcis.

exemple.

sayHello script :

say "hello"

Service d'automatisation : enter image description here

Qui dans cet exemple utilise :

  • Pas d'entrée
  • Toute application.

L'action est une Exécuter le Shell script Le code utilise simplement la commande unix osascript et le chemin d'accès au fichier. Passer l'entrée peut être à stdn o à l'argument

C'est tout, rien de spécial ne doit être fait au script.

Pour plus de détails sur le Commande osascript : consultez les pages de manuel pour cela. La page man donne un autre exemple où vous pouvez passer des arguments au script.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X