Ziehen Sie, um die Automator-Aktion in Applescript umzuwandeln

In Automator gibt es eine Möglichkeit, eine Aktion schnell in ihr entsprechendes Applescript in Automator umzuwandeln, ich denke, indem man sie auf eine knifflige Weise zieht. Ich habe das vor einiger Zeit gesehen, aber jetzt vergessen. Ich habe versucht zu suchen und kann es nicht finden.

Wahrscheinlich, weil es nicht möglich ist. AppleScript-Befehle und Automator-Aktionen sind unterschiedlich, einige Apps unterstützen möglicherweise das eine, das andere jedoch nicht. Beide sollen sich wiederholende Aufgaben erledigen, aber unterschiedlich.

Antworten (3)

Falls jemand diese Frage hat, ich habe sie gefunden, aber sie funktioniert nur für aufgezeichnete Aktionen.

Nachdem Sie einige Klicks oder andere Aktionen in Automator aufgezeichnet haben, werden sie in einer „Watch Me Do“-Aktion angezeigt. Sie können dann auf eine einzelne Aktion klicken und sie aus dieser Aktion herausziehen und loslassen, wenn das +-Zeichen angezeigt wird. Automator fügt dem AppleScript eine Aktion „AppleScript ausführen“ hinzu, die dieselben Klicks und Tastendrücke an Systemereignisse sendet.

Sie können auch einfach die gewünschte Aktion kopieren, zum AppleScript Editor wechseln und einfügen, um denselben Code zu erhalten.

Beispiel: Das Ereignis „Klicken Sie auf Skype im Dock“ wird in das folgende AppleScript konvertiert:

on run {input, parameters}
    -- ClickSkypein the Dock.
    delay 7.872251
    set timeoutSeconds to 2.000000
    set uiScript to "click UI Element \"Skype\" of list 1 of application process \"Dock\""
    my doWithTimeout( uiScript, timeoutSeconds )
    return input
end run

on doWithTimeout(uiScript, timeoutSeconds)
    set endDate to (current date) + timeoutSeconds
    repeat
        try
            run script "tell application \"System Events\"
" & uiScript & "
end tell"
            exit repeat
        on error errorMessage
            if ((current date) > endDate) then
                error "Can not " & uiScript
            end if
        end try
    end repeat
end doWithTimeout

So konvertieren Sie aufgezeichnete Ereignisse in Automator:

Klicken Sie auf ein Ereignis und ziehen Sie es, um eine neue Aktion zu erstellen Automator konvertiert das Ereignis in Applescript

Ich habe dafür gestimmt, wie Sie AppleScript-Code aus einer Watch Me Do-Aktion abrufen, aber Sie sagten: „ Sie können die gewünschte Aktion auch einfach kopieren, zum AppleScript-Editor wechseln und einfügen, um denselben Code zu erhalten. “ und während Dies mag in einigen Fällen zutreffen, in einigen Fällen jedoch nicht, da der AppleScript-Code nicht immer genau auf diese Weise von Automator in den AppleScript-Editor kopiert und erfolgreich ausgeführt werden kann, ohne den Code zu ändern.

Es ist unmöglich. Sie können ähnliche Aktionen in Applescript ausführen, aber es gibt keine Möglichkeit, ein vorhandenes Automator-Skript in Applescript zu konvertieren.

Könnte allgemein stimmen (ich weiß es nicht), aber es ist möglich für die aufgezeichneten Aktionen ("Watch Me Do") - siehe meine Lösung unten.

Erstellen Sie Ihre Automator-Datei als Typ "Anwendung".

Sagen Sie Ihrem AppleScript, dass es Ihre Automator-App ausführen soll.

Etwas wie:

open "/Users/george/AutomatorFiles/MyScript.app"

Funktioniert bei mir!

Das ist auch nützlich, wenn auch nicht ganz das, wonach ich gesucht habe, nämlich den Code zu sehen, damit ich ihn verstehen und wiederverwenden kann.