如何使用AppleScript启动Automator应用程序?

时间:2011-10-17 10:52:18

标签: applescript

我正在尝试使用Remote Buddy来控制Photo Booth,但我需要一种在静态和视频模式之间切换的方法,我的解决方案是使用Automator应用程序选择两个无线电中的一个或另一个按下遥控器按钮时的按钮。

我已经创建了.app,当我从桌面双击它时它工作正常,但是我需要一种方法从Remote Buddy中启动.app,AppleScript似乎是我唯一的选择。

TL;博士

我需要能够使用AppleScript启动Automator .app文件,但无法找出正确的语法。

4 个答案:

答案 0 :(得分:5)

如果我创建了一个名为Untitled的Automator应用程序,我将使用此命令启动它tell application "Untitled" to activate

使用以下方法之一创建应用程序后,可以通过其名称在任何其他脚本中访问该应用程序。它是全局定义的,就像你的mac上的任何其他应用程序一样。只需使用tell application "app Name"

即可

创建应用程序的两种方法: Using AppleScript Using automator

答案 1 :(得分:3)

activate app ((system attribute "HOME") & "/Desktop/test.app/")

您也可以使用automator shell命令。

automator test.workflow
automator test.app
automator test.workflow -v # verbose
automator -i lol test.workflow
echo lol | automator -i - test.workflow
automator -i $'lol\nlol2' test.workflow # \n separates input strings
automator -d somevar=somevalue test.workflow

答案 2 :(得分:0)

您首先要为自动取款机应用命名,例如" photobooth.app"然后你会在AppleScript中输入一个类型

tell application "photobooth.app"
activate
end tell

答案 3 :(得分:0)

我直接使用Automator脚本编写。这不会访问应用程序,而是访问工作流程。这是有利的,因为您可以编辑某些工作流程项的设置/内容。

我想我的答案更适合这个问题:

如何使用AppleScript启动Automator 工作流程

我发现首先保存Automator操作可以避免出现问题。 e.g。

set theWorkflowName to "Merge PDF Files"
set myWorkflow to make new workflow with properties {name:theWorkflowName, path:POSIX path of ((path to temporary items as string) & theWorkflowName & ".workflow" as string)}
set myWorkflow to open POSIX path of ((path to temporary items as string) & theWorkflowName & ".workflow" as string)

合并PDF文件Droplet

on open the_Droppings
-- CONVERT INPUT LIST OF ALIASES TO POSIX PATHS
repeat with itemStep from 1 to count of the_Droppings
    set item itemStep of the_Droppings to POSIX path of item itemStep of the_Droppings
end repeat

tell application "Automator"
    activate
    set myWorkflow to open POSIX file "/Users/USERNAME/Dropbox/Scripts/Automator/Workflows/merge PDF files.workflow"
    set actionsList to name of Automator action of myWorkflow
    set firstAction to item 1 of actionsList
    tell myWorkflow
        (*
        get index of Automator action firstAction
        get input types of Automator action firstAction
        get path of Automator action firstAction
        get path of Automator action firstAction
        get value of setting of Automator action firstAction
        *)
        set value of setting of Automator action firstAction to the_Droppings -- MUST BE LIST OF POSIX PATHS
    end tell
end tell
end open