2013-12-03 3 views
1

Я думал о том, что это лучший способ использовать это утверждение для GUI Scripting:Лучший способ использовать: говорить приложение «Системные события»

tell application "System Events" 

Существует ли разница с

tell application "System Events" 
    tell process "Finder" 
    -- do something with the GUI 
    end tell 
end tell 

и

tell application "Finder" 
    tell application "System Events" 
    -- do something with the GUI 
    end tell 
end tell 

Кроме того, кажется, что инструкция «process» может обращаться к графическому интерфейсу, в то время как приложение не может.

ответ

0

Если вы пишете

tell application "Finder" 
    tell application "System Events" 

    end tell 
end tell 

вам нужно держать «Finder» Говори структуру с открытыми до тех пор, как вам нужно «Системные события» говорят структуры. Это может испортить ваш код, и это может вызвать проблемы, если несколько приложений имеют конфликтующие команды.

«Системные события» редко или никогда не конфликтуют ни с чем и требуется относительно часто. Имеет смысл иметь очень длинную структуру «Системные события», но не имеет смысла иметь очень длинную структуру «Finder».

Независимо от того, используете ли вы процесс или приложение, это не имеет никакого отношения к нему. Оба могут получить доступ к сценариям GUI, но для этого вам понадобятся системные события, контролируя приложение, отличное от Finder.

1

Кажется, вы ответили на свой вопрос. Первый пример работает и корректен, второй пример не работает и не должен использоваться.

Смежные вопросы