0

我正在使用 Automator 编写一个应用程序(我是一个完全了解编程的新手),它将提示用户在两个不同的应用程序之间进行选择。到目前为止,我有这个,我在这个网站的另一个帖子中找到了

on run
choose from list {"Old", "New"} with prompt "Choose which launcher you want to use" without multiple selections allowed and empty selection allowed
return the result as string
end run

当用户选择两个选项之一并点击“确定”时,想法是打开相应的应用程序。但是,我不知道如何让应用程序读取选择了哪个选项并打开相应的应用程序。这甚至可以在 Automator 中实现吗?

4

1 回答 1

1

我相信下面的代码会做你想做的事。我列出了三个应用程序,您可能拥有其中两个:“日历”(以前称为“iCal”)和“联系人”(以前称为“通讯录”。第三个应用程序称为“Web 编辑器”) t 随 Mac 一起提供,但我想在名称中有空格的应用程序上测试此脚本。

on run
    choose from list {"Calendar", "Contacts", "Web Editor"} with prompt "Choose which launcher you want to use" without multiple selections allowed and empty selection allowed
    if result is equal to false then
        error -128
    else
        # convert the list return from choose list to a single string
        set app_name to result as string
        # run the selected app
        tell application app_name
            launch
            activate
        end tell
        return app_name
    end if
end run

# the following line of code cancels the rest of the workflow when the user clicks the "Cancel" button
error -128

我相信您缺少的是您让“运行 AppleScript”操作返回应用程序的名称,该名称会将其传递给工作流程中的下一个操作。

return the result as string

您需要做的是在变量中捕获所选应用程序的名称,如下所示:

# convert the list returned from the "choose list" command to be a single string
set app_name to result as string

在变量中包含应用程序的名称后,您可以按如下方式使用它来打开应用程序:

tell application app_name
    launch
    activate
end tell

我不知道要返回什么样的价值。您在 AppleScript 中返回的内容将传递到此工作流程中的下一个 Automator 操作。对我来说唯一有意义的是传递选择的应用程序名称。

return app_name

我们可以返回它,或者另一个通常作为动作输出传递的东西是它自己的输入:

return input

您必须定义“输入”,例如在创建新的 Run AppleScript 操作时:

on run {input, parameters}
    return input
end run

上面的脚本只是将其输入作为输出传递,并没有真正做任何事情,但这只是一个起点。

我正在整理一个网站作为在线教程,我可以使用你的帮助。我需要那些不熟悉编程的人来学习我正在整理的教程,我会免费帮助你,只要求你在我的网站上给我反馈。如果您有兴趣,可以访问我的网站和/或给我发送电子邮件。

开始 Mac 自动化和编程

kaydell@yahoo.com

于 2013-07-03T21:09:08.213 回答