Przeciągnij, aby przekonwertować działanie Automatora na Applescript

5

W Automatorze istnieje sposób na szybką konwersję Akcji na jej odpowiednik Applescript w Automatorze, myślę, że przeciągając ją w jakiś skomplikowany sposób. Widziałem to jakiś czas temu, ale teraz zapomniałem. Próbowałem wyszukać i nie mogę go znaleźć.

Nate
źródło
Prawdopodobnie dlatego, że nie jest to możliwe. Polecenia AppleScript i akcje Automatora są różne, niektóre aplikacje mogą obsługiwać jedną, a nie drugą. Obie mają wykonywać powtarzające się zadania, ale inne.
user14492

Odpowiedzi:

9

W przypadku, gdy ktoś ma to pytanie, znalazłem je, ale działa ono tylko dla nagranych akcji.

Po zapisaniu kilku kliknięć lub innych działań w Automatorze pojawiają się one w akcji „Obserwuj mnie”. Następnie możesz kliknąć i przeciągnąć pojedynczą akcję z tej Akcji i zwolnić, gdy pojawi się znak +. Automator doda akcję „Uruchom AppleScript” za pomocą AppleScript, który wysyła te same kliknięcia i naciśnięcia klawiszy do zdarzeń systemowych.

Możesz również po prostu skopiować żądaną czynność, przełączyć się do edytora AppleScript i wkleić, aby uzyskać ten sam kod.

Przykład: zdarzenie „Kliknij Skype w Docku” konwertuje na następujący AppleScript:

on run {input, parameters}
    -- Click “Skype” in 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

Jak konwertować nagrane zdarzenia w Automatorze:

Click and event and drag to create a new action Automator converts the event to Applescript

Nate
źródło
W głosowaniu głosowałem nad tym, jak można zebrać kod AppleScript z akcji Watch Me Do, jak sam powiedziałeś Możesz również po prostu skopiować żądaną czynność, przełączyć się do edytora AppleScript i wkleić, aby uzyskać ten sam kod. „i chociaż może to być prawdą w niektórych przypadkach, nie jest to jednak prawdą w niektórych przypadkach, ponieważ kod AppleScript nie zawsze może być skopiowany dokładnie z Automatora w ten sposób do edytora AppleScript i działa poprawnie bez modyfikacji kodu.
user3439894
dzięki, że wróciłeś, aby podzielić się wiedzą
Walrus the Cat
0

To niemożliwe. Możesz wykonać podobne działania w Applecript, ale nie ma możliwości przekonwertowania istniejącego skryptu automatyzatora na applescript.

DisplayName
źródło
Może być ogólnie prawdziwe (nie wiem), ale możliwe jest dla nagranych działań („Watch Me Do”) - zobacz moje rozwiązanie poniżej.
Nate
0

Utwórz plik Automatora jako typ aplikacji.

Powiedz AppleScript, aby uruchomił aplikację Automator.

Coś jak:

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

Pracuje dla mnie!

George
źródło
To też jest użyteczne, choć nie do końca to, czego szukałem, to było zobaczyć kod, abym mógł go zrozumieć i użyć ponownie.
Nate