拖动以将Automator Action转换为Applescript


6

在Automator中,有一种方法可以将Action快速转换为Automator中等效的Applescript,我认为可以通过一些棘手的方式将其拖动。我前一段时间看到了,但现在已经忘记了。我尝试搜索,但找不到。


可能是因为不可能。AppleScript命令和Automator动作不同,某些应用程序可能支持其中一个,而另一个则不支持。两者都要做重复的任务,但有所不同。
user14492

Answers:


10

万一有人有这个问题,我找到了,但是它仅适用于录制的动作。

在Automator中记录一些单击或其他操作后,它们将显示在“监视我”操作中。然后,您可以单击一个动作并将其拖出该动作,并在出现+号时释放它。Automator将使用AppleScript添加“运行AppleScript”操作,该操作会将相同的点击和按键发送到系统事件。

您也可以简单地复制所需的操作,切换到AppleScript编辑器,然后粘贴以获得相同的代码。

示例:“单击Dock中的Skype”事件将转换为以下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

如何在Automator中转换记录的事件:

单击并事件并拖动以创建新动作 Automator将事件转换为Applescript


我对它如何从“监视我”操作中收集AppleScript代码的优点投了赞成票,但是您说“ 您还可以简单地复制所需的操作,切换到AppleScript编辑器,然后粘贴以获取相同的代码。 ”在某些情况下这可能是正确的,但是在某些情况下可能并非如此,因为无法始终以这种方式将AppleScript代码始终从Automator精确复制到AppleScript编辑器,并且无需修改代码即可成功运行。
user3439894

0

不可能。您可以在applescript中执行类似的操作,但是无法将现有的自动脚本转换为applescript。


通常可能是正确的(我不知道),但是记录的动作也是可能的(“ Watch Me Do”),请参阅下面的解决方案。
Nate

0

将Automator文件创建为“应用程序”类型。

告诉您的AppleScript运行您的Automator应用程序。

就像是:

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

为我工作!


这也很有用,尽管不是我要找的东西,而是看代码,以便我理解和重用它。
Nate
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.