У меня установлено приложение, которое отображается только в строке меню (как дополнительное меню справа). Я хотел бы щелкнуть один из пунктов, содержащихся в его меню, через osascript. Я нашел следующий фрагмент кода:

osascript -e '
  tell application "System Events"
    tell process "SystemUIServer"
      tell (1st menu bar item of menu bar 1 whose value of attribute "AXDescription" is "keymando menu extra")
         perform action "AXPress" of menu item "Edit Config" of menu 1
      end tell
    end tell
  end tell

К сожалению, это не работает. Я предполагаю, что у меня есть правильное название меню: "Keymando menu extra".

3 ответа3

2

SystemUIServer включает в себя только дополнительные элементы меню (значки справа, которые можно переставлять), но не меню состояния (как в используемом Keymando).

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 of menu bar 1 where description is "clock")
        click
        click menu item "Open Date & Time Preferences…" of menu 1
    end tell
end tell

В некоторых приложениях menu bar 2 представляет собой меню состояния, но tell application "System Events" to UI elements of process "Keymando" возвращает пустой список.

1

это может быть там, это напишет список во временную папку, которую вы можете просмотреть для «дескриптора».

`osascript -sso > /private/tmp/StatusBarItems <&- <<EOF
tell application "System Events"
    get properties of every  menu bar item of every menu bar  of process "SystemUIServer"
end tell
EOF`

или вы можете поэкспериментировать с

   ` osascript -sso > /private/tmp/SU_reLoad <&- <<BUTTON
tell application "System Events"
    click  menu bar item 1 of menu bar 2 of application process "SystemUIServer"
end tell
BUTTON`

к сожалению, того, кого я хочу, там нет ... «Выход из полноэкранного режима» для приложения без сценариев ... Джон

0

Мне удалось открыть видеовстречу с

tell application "System Events" to tell process "Google Chrome" to tell menu bar 2
    click (first menu bar item where help is "Google Hangouts")
end tell

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .