Многие сторонние приложения имеют небольшие значки меню в правом верхнем углу строки меню, такие как Evernote, iStat, Parallels Desktop и так далее. Я пытался написать некоторые AppleScripts для нажмите эти значки меню, но все не удалось ,
Возьмите «ПД», например:
tell application "System Events"
tell process "Parallels Desktop"
get properties of every menu bar item of every menu bar
end tell
end tell
Я могу получить несколько пунктов меню, таких как «Apple», «Parallels Desktop», «Файл», «Редактировать», ..., «Справка», которые, очевидно, являются верхними левыми меню PD. Кроме того, дополнительное меню также получается и описывается следующим образом:
{минимальное значение: пропущенное значение, ориентация: пропущенное значение, позиция: {1338, 0}, класс: элемент строки меню, описание доступности: "", описание роли: "дополнительное меню", фокус: ложь, заголовок: пропущенное значение, размер : {30, 22}, help: "", все содержимое: {}, включено: true, максимальное значение: пропущено значение, роль: "AXMenuBarItem", значение: пропущено значение, подчиненная роль: "AXMenuExtra", выбрано: false, имя : отсутствует значение, описание: ""}
После проверки позиции инспектором специальных возможностей я могу подтвердить, что это дополнительное меню является значком меню, который я хочу щелкнуть. Тогда я пишу это:
tell application "System Events"
tell process "Parallels Desktop"
click menu bar item 1 of menu bar 2
end tell
end tell
или замените выражение "click" на:
perform action "AXPress" of menu bar item 1 of menu bar 2
или с:
perform action "AXShowMenu" of menu bar item 1 of menu bar 2
Все приведенные выше коды возвращают один и тот же результат: недостающее значение и никакие меню не появляются вообще!
Что касается элементов пользовательского интерфейса системы, таких как «ввод текста», «дата и время», «wifi», «батарея», «VPN», метод щелчка работает. НО для сторонних приложений, это не работает.
Итак, как выбрать сторонние меню через AppleScript?
Огромное спасибо!!
источник
Ответы:
У меня была проблема с тем, что AppleScript нажимал на дополнительное меню iTeleport Connect, пока не попробовал следующее:
источник
tell application "System Events" to click menu bar item 1 of menu bar 2 of process "ProcessName"
!