Oui, Automator est la meilleure option ici. Pour créer le service, procédez comme suit:
Ouvrez Automator et sélectionnez Service:
Recherchez 'applescript' et faites glisser l'action vers le volet droit:
Changez Service receives selected text
pour Service receives no input
qu'il apparaisse toujours dans le menu Services:
Remplacez (* Your script goes here *)
par:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
si vous souhaitez exécuter votre .scpt
fichier existant . Notez qu'osascript ne peut pas gérer l'interaction utilisateur comme l'affichage d'une fenêtre de dialogue:
Pour surmonter cette limitation, utilisez cette solution de contournement ou remplacez-la simplement (* Your script goes here *)
par le contenu de votre script.
Sauvegarde le:
Si vous le souhaitez, vous pouvez attribuer un raccourci à votre nouveau service. Sélectionnez Services> Préférences de services dans le Finder (ou toute application ouverte):
Attribuez un raccourci pas si commun:
Maintenant, votre service est accessible à partir de n'importe quelle application via le raccourci que vous avez attribué à l'étape précédente:
Si vous souhaitez vous débarrasser du service ouvert ~/Library/Services
, supprimez le service et videz la corbeille:
osascript
, comme expliqué dans d'autres réponses.osascript
dans Automator pour exécuter votre.scpt
fichier, une limitation et deux solutions de contournement.osascript
besoin de 4 secondes supplémentaires pour exécuter votre script, mais Automator n'est pas la cause du retard, ce qui était ma préoccupation. Vous voudrez peut-être déboguerosascript
, consultez opensourcehacker.com/2011/12/02/… et stackoverflow.com/questions/31045575/…Dans le script, ajoutez un
on run
argument:Ensuite, vous pouvez utiliser l'action Automator "Run Shell Script", avec la
osascript
commande:osascript
est une commande qui exécute AppleScript dans le shell. Vous avez besoin des lignes du script pour permettre au script d'être exécuté en dehors de l'éditeur AppleScript.la source
on run {input, arguments}
formulaire spécial , mais même dans Automator, vous pouvez simplement supprimer le gestionnaire d'exécution.Vous voudrez peut-être jeter un œil à ce service , qui vous permet de «créer des services Mac OS X à partir de n'importe quel script».
la source
Je ne recommanderais pas de créer des services Automator pour attribuer des raccourcis aux scripts. Il y a un bogue dans 10.7 et 10.8 où les raccourcis clavier pour les services Automator ne fonctionnent pas toujours tant que vous n'avez pas survolé le menu des services dans la barre de menus. Il existe également un délai relativement long (peut-être de 0,1 à 1 s) avant l'exécution des services.
Voir cette réponse pour d'autres façons d'affecter des raccourcis clavier aux scripts. J'utilise FastScripts et Alfred moi-même.
la source
Vous pouvez exécuter le script existant avec un service d'automatisation simple comme celui-ci. Et attribuez votre raccourci à partir des raccourcis clavier normalement. N'oubliez pas que certaines applications doivent être relancées avant de prendre les raccourcis.
exemple.
Script sayHello:
Service d'automatisme:
Qui dans cet exemple utilise:
L'action est un script shell d'exécution Le code utilise simplement la commande unix osascript et le chemin d'accès au fichier. Passer l'entrée peut être à stdn ou à argument
C'est rien de spécial doit être fait pour le script.
Pour plus de détails sur la commande osascript, consultez les pages de manuel correspondantes. La page de manuel donne un autre exemple où vous pouvez passer des arguments au script.
la source
Pour développer un service, vous avez besoin d'une sorte de logiciel qui créera un service tel que l'un des suivants:
Tous les types de services ci-dessus sont des packages. Ce sont tous des dossiers qui contiennent une liste qui spécifie les attributs d'un service.
Voici comment j'ai créé un service à l'aide d'Automator qui utilise une action "Exécuter AppleScript" Automator pour appeler un .script existant.
la source