Applescript для выбора пункта меню в строке состояния приложения - PullRequest
0 голосов
/ 17 октября 2018

У меня есть приложение под названием Fenêtre, при поиске имени процесса с помощью команды top оно дает имя Fene?~Btre H.

Я хочу щелкнуть элемент с именем «a.py» под его элементом менюкак показано на рисунке.

enter image description here enter image description here

Моя попытка:

попытка 1

tell application "System Events" to tell process "Fenêtre"
    tell menu bar item 1 of menu bar 1
        click
        click menu item "Show all" of menu 1
    end tell
end tell

Ошибка:

$ osascript a.applescript 
a.applescript:121:157: execution error: System Events got an error: Can’t get menu item "Show all" of menu 1 of menu bar item 1 of menu bar 1 of process "Fenêtre". (-1728)

Обратите внимание, что когда я запускаю только первую и последнюю строку попытки1, он работает хорошо, когда я добавляю средние строки, он не запускается.

попытка2

ignoring application responses
    tell application "System Events" to tell process "Fenêtre"
        click menu bar item 1 of menu bar 2
    end tell
end ignoring
do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "Fenêtre"
    tell menu bar item 1 of menu bar 2
        click menu item "a.py" of menu 1
        -- click menu item 1 of menu 1 -- another try
    end tell
end tell

Обновления (по-прежнему возникают ошибки)

tell application "System Events" to tell process "Fenêtre"
    get entire contents of menu bar 2
end tell

Это дает:

{menu bar item 1 of menu bar 2 of application process "Fenêtre" of application "System Events"}

Ссылки:
Applescript: при нажатии МенюЭлемент панели с помощью графического сценария
опция строки меню щелчка мышью * яблочный скрипт
https://superuser.com/questions/587815/can-applescript-osascript-be-used-to-click-menu-extra-menu-items
Applescript для отображения элементов панели меню Apple
Является ли AppleScript UI Scripting очень медленным в целом, или это мой сценарий, или что-то еще?
Нажатие элемента строки меню приложения с помощью AppleScript

Большое спасибо.

1 Ответ

0 голосов
/ 20 октября 2018

Используйте идентификатор пакета вместо имени приложения:

tell application "System Events"
    tell (first application process whose bundle identifier is "BUNDLE_IDENTIFIER_HERE")
        tell menu bar item 1 of menu bar 1
            click
            click menu item "Show all" of menu 1
        end tell
    end tell
end tell
...