Как я могу запустить приложение Automator с помощью AppleScript?

#applescript

#applescript

Вопрос:

Я пытаюсь использовать Remote Buddy для управления Photo Booth, но мне нужен способ переключения между режимами фотосъемки и видео, моим решением было использовать приложение Automator для выбора одной или другой из двух переключателей при нажатии кнопки remote.

Я создал .app, и он отлично работает, когда я дважды щелкаю по нему на рабочем столе, но мне нужен способ запустить .app из Remote Buddy, и AppleScript, похоже, мой единственный вариант.

tl; dr

Мне нужно иметь возможность запускать файл Automator .app с помощью AppleScript, но я не могу определить правильный синтаксис.

Ответ №1:

Если бы я создал приложение Automator с именем Untitled , я бы запустил его с помощью этой команды tell application "Untitled" to activate

После создания приложения с использованием одного из следующих методов к этому приложению можно получить доступ в любом другом скрипте через его имя. Оно определено глобально, как и любое другое приложение на вашем Mac. Просто используйте tell application "app Name"

Два способа создания приложения : Использование AppleScript
Использование automator

Комментарии:

1. Являются ли имена приложений глобальными? Нужно ли мне сначала перейти к определенному каталогу или это будет работать из любого места?

Ответ №2:

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

Вы также можете использовать команду automator оболочки.

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

Ответ №3:

Сначала назовите свое приложение automator, например, «photobooth.app», затем перейдите в applescript и введите

 tell application "photobooth.app"
activate
end tell
  

Ответ №4:

Я делаю это напрямую с помощью сценариев Automator. Это не доступ к приложению, а скорее к рабочему процессу. Это выгодно, потому что вы можете редактировать настройки / содержимое некоторых отдельных элементов рабочего процесса.

Я полагаю, что мой ответ лучше подходит для вопроса:

Как я могу запустить рабочие процессы Automator с помощью AppleScript?

Я считаю, что сохранение действия Automator сначала позволяет избежать проблем. например

 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) amp; theWorkflowName amp; ".workflow" as string)}
set myWorkflow to open POSIX path of ((path to temporary items as string) amp; theWorkflowName amp; ".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