2016-05-13 18 views
1

Meine Apple korrekte Ausgabe gab, als ohne Eingabe innerhalb Automator als Service lief, aber es gibt Fehlermeldung, wenn außerhalb automator lief (Safari, Vorschau etc.)Warum dieser Fehler - Applescript, automator & Applescript-Editor

Es gibt auch Korrekte Ausgabe beim Ausführen von AppleScript Editor, kein Problem mit Safari, Vorschau oder einer anderen Anwendung.

Der Grund, warum ich so scharf darauf war, es mit Automator zu schaffen, war, dass ich keine Drittanbieter-App installieren wollte, nur um einem Skript eine Verknüpfung zuzuweisen.

Ich debuggte diesen Teil, der nach dem Entfernen von Code erlaubt Automator das Skript ausführen. Lief es mit Versuch, Fehler im Automator & Viola, keine Probleme überhaupt.

Aber ich möchte wissen, warum dieser Code früher & ohne try-error-Funktion gab die Fehlermeldungen, wenn außerhalb Automator-Anwendung ausgeführt.

Hier ist der Teil des Skripts mit Try-Fehlerfunktion:

try 

set writ to do shell script "/usr/bin/python Users/[username]/Documents/tech_toolkit/windtitle" 

tell application writ 
    if the (count of windows) is not 0 then 
     set window_title to name of front window 
    end if 
end tell 

on error 

    delay 2 

end try 

Für Shell-Skript/windtitle ist windtitle eine ausführbare Datei

#!/usr/bin/env python 

from AppKit import NSWorkspace 
active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName() 
print active_app_name 
+0

Was das Skript tun soll? Was ist das erwartete Ergebnis? Was ist die Fehlermeldung? Grundsätzlich funktioniert das Skript nur, wenn die Zielanwendung über ein AppleScript-Wörterbuch verfügt und dieses Wörterbuch ein Fensterelement mit einer Namenseigenschaft enthält, die standardmäßig nicht benötigt wird. – vadian

+0

Es geht darum, Benutzer-basierte Eingabe zusammen mit Meta-Details [wenn Safari - dann URL sonst für jede andere App-Speicherort der Datei in meinem Laptop, Datum und Uhrzeit, Titel des Fensters]. Ich bekomme die Ergebnisse, bin nur neugierig auf das seltsame Verhalten des Automators, das ich oben erklärt habe, bis ich die Try-Error-Funktion benutzt habe. Die Fehlermeldung, die ich bekam, war: Die Aktion "AppleScript ausführen" hat einen Fehler verursacht. – lawsome

+0

Um den Fehler Ihres Skripts zu bekommen, verwenden Sie dies in Ihrem Skript -> 'on error err' - die nächste Zeile -> 'display dialog err ' – jackjr300

Antwort

1

Der Fehler ist:

  • Ihr Python-Skript gibt die Anwendung "Automator Runner" zurück n wenn es als Dienst läuft, ist es das vorderste im Hintergrund, aber nicht im Vordergrund.

die vorderste Anwendung erhalten, dieses Skript verwenden:

try 
    tell application (path to frontmost application as text) 
     set window_title to name of front window 
     set writ to its name -- get the name of this application 
    end tell 
on error 
    return -- quit this script, because this application is not scriptable, or no window 
end try