Ja, Automator ist hier die beste Option. Gehen Sie folgendermaßen vor, um den Dienst zu erstellen:
Öffnen Sie Automator und wählen Sie Service:
Suchen Sie nach "Applescript" und ziehen Sie die Aktion in den rechten Bereich:
Wechseln Sie Service receives selected text
zu, Service receives no input
damit es immer im Menü Dienste angezeigt wird:
Ersetzen (* Your script goes here *)
durch:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
wenn Sie Ihre vorhandene .scpt
Datei ausführen möchten . Beachten Sie, dass Osascript keine Benutzerinteraktion wie das Anzeigen eines Dialogfensters verarbeiten kann:
Um diese Einschränkung zu überwinden, verwenden Sie entweder diese Problemumgehung oder ersetzen Sie sie einfach durch (* Your script goes here *)
den Inhalt Ihres Skripts.
Speichern Sie es:
Wenn Sie möchten, können Sie Ihrem neuen Dienst eine Verknüpfung zuweisen. Wählen Sie im Finder (oder eine geöffnete Anwendung) Dienste> Diensteinstellungen aus:
Weisen Sie einen nicht so häufigen Shorcut zu:
Jetzt ist Ihr Dienst von jeder Anwendung aus über die Verknüpfung zugänglich, die Sie im vorherigen Schritt zugewiesen haben:
Wenn Sie den geöffneten Dienst jemals entfernen möchten ~/Library/Services
, löschen Sie den Dienst und leeren Sie den Papierkorb:
osascript
, wie in anderen Antworten erläutert.osascript
in Automator Ihre.scpt
Datei ausführen , eine Einschränkung und zwei Problemumgehungen.osascript
4 zusätzliche Sekunden benötigt werden, um Ihr Skript auszuführen, aber Automator ist nicht die Ursache für die Verzögerung, die mein Anliegen war. Sie können debuggenosascript
, siehe opensourcehacker.com/2011/12/02/… und stackoverflow.com/questions/31045575/…Fügen Sie im Skript ein
on run
Argument hinzu:Anschließend können Sie die Automator-Aktion "Shell-Skript ausführen" mit dem folgenden
osascript
Befehl verwenden:osascript
ist ein Befehl, der AppleScript in der Shell ausführt. Sie benötigen die Zeilen im Skript, damit das Skript außerhalb des AppleScript-Editors ausgeführt werden kann.quelle
on run {input, arguments}
Formular verwendet, aber selbst in Automator können Sie den Ausführungshandler einfach entfernen.Vielleicht möchten Sie sich diesen Dienst ansehen , mit dem Sie "Mac OS X-Dienste aus einem beliebigen Skript erstellen" können.
quelle
Ich würde nicht empfehlen, Automator-Dienste zu erstellen, um Skripten Verknüpfungen zuzuweisen. In 10.7 und 10.8 gibt es einen Fehler, bei dem die Tastaturkürzel für Automator-Dienste nicht immer funktionieren, bis Sie den Mauszeiger über das Dienstemenü in der Menüleiste bewegen. Es gibt auch eine relativ lange Verzögerung (möglicherweise 0,1 bis 1 s), bevor Dienste ausgeführt werden.
In dieser Antwort finden Sie weitere Möglichkeiten zum Zuweisen von Tastaturkürzeln zu Skripten. Ich benutze FastScripts und Alfred selbst.
quelle
Sie können das vorhandene Skript mit einem einfachen Automator-Dienst wie diesem ausführen. Und weisen Sie Ihre Verknüpfung wie gewohnt über die Tastaturkürzel zu. Denken Sie daran, dass einige Anwendungen möglicherweise neu gestartet werden müssen, bevor sie die Verknüpfungen übernehmen.
Beispiel.
sayHello-Skript:
Automator-Service:
Was in diesem Beispiel verwendet:
Die Aktion ist ein Shell-Skript ausführen. Der Code verwendet nur den Unix-Befehl osascript und den Pfad zur Datei. Die Eingabe kann an stdn oder an argument übergeben werden
Das ist nichts Besonderes, was mit dem Skript gemacht werden muss.
Weitere Details zum Befehl osascript finden Sie in den Manpages . Die Manpage enthält ein weiteres Beispiel, in dem Sie Argumente an das Skript übergeben können.
quelle
Um einen Service zu entwickeln, benötigen Sie eine Software, mit der ein Service wie der folgende erstellt wird:
Alle oben genannten Arten von Dienstleistungen sind Pakete. Dies sind alles Ordner, die eine Liste enthalten, die die Attribute eines Dienstes angibt.
So habe ich einen Dienst mit Automator erstellt, der eine Automator-Aktion "AppleScript ausführen" verwendet, um ein vorhandenes .script aufzurufen.
quelle