Warum wird mein AppleScript nicht als Dienst ausgeführt?

Ich habe ein einfaches AppleScript, das genau wie erwartet funktioniert, wenn es eigenständig ausgeführt wird, entweder als App, direkt aus ScriptDebugger oder Script Editor oder als Element einer Automatisierung aus Automator:

Geben Sie hier die Bildbeschreibung ein

Wenn ich jedoch versuche, diese Automatisierung als Dienst auszuführen, indem ich sie beispielsweise als Dienst speichere und über das Menü „Dienste“ ausführe

Geben Sie hier die Bildbeschreibung ein

nichts passiert. Der Dienst wird nicht ausgeführt, unabhängig davon, ob ich eine Aktion „AppleScript ausführen“ in Automator verwende oder eine Anwendung aus dem Skript erstelle und eine Aktion „Anwendung starten“ verwende.

Warum läuft mein AppleScript nicht als Dienst, wenn es unter allen anderen Umständen einwandfrei läuft?

Funktioniert bei mir. Haben Sie die TextWrangler-Anwendung umbenannt?
PS. Das Menü "Dienste" ist meiner Meinung nach kein großartiger Ort für solche Dinge. Wenn Sie Applescripts Verknüpfungen zuweisen möchten, könnten Sie an FastScripts interessiert sein
@ghoppe: Warum ist es kein großartiger Ort?
Das Menü „Dienste“ ist für die kontextbezogene Verarbeitung von Text, Dateien, Bildern usw. gedacht. Während es möglich ist, globale „Überall ausführen“-Skripte zu verwenden, die dort keine Eingaben benötigen, erscheint es mir sinnvoller, diese in den globalen Skripten zu belassen Speisekarte. Ich halte mein Service-Menü gerne schlank, damit es nützlicher ist.
@raxacoricofallapatorius Es gibt einen Fehler, bei dem die Verknüpfungen für Dienste zunächst nicht immer funktionieren, bis der Dienst einmal aus der Menüleiste ausgewählt wurde. Dienste mit globalen Verknüpfungen können nicht ausgeführt werden, wenn die vorderste Anwendung kein Dienstemenü hat. Das Bearbeiten von Skripten in Automator kann mühsam sein. Dienste sind nicht so einfach zu teilen wie normale Skripte.

Antworten (1)

Das ist seltsam, aber ich habe mindestens drei Leute in den Apple Support Communities gesehen , die dieses Problem hatten, wenn a of process "x"und a tell application "System Events" toin derselben Zeile stehen.

Versuche dies.

on run {input, parameters}
  tell application "System Events"
      tell process "TextWrangler" to set visible to not visible
  end tell
end run