Как получить доступ ко всем значкам строки меню

Я говорю о значках, которые отображаются в правой части строки меню. Я могу получить доступ к этой строке меню с помощью (py-appscript)

app(u'System Events').processes[u'SystemUIServer'].menu_bars[1]

& menu_bar_item[1], menu_bar_items[1] и т. д. относятся к каждой из иконок.

Но есть несколько значков, на которые нельзя ссылаться с помощью этого метода. Например, значок поиска в углу не принадлежит SystemUIServer. Точно так же значок нашего приложения также отображается там, но на него нельзя ссылаться, как в приведенном выше примере. Итак, как я могу ссылаться на эти значки? Я хочу выполнять такие действия, как щелчок, щелчок правой кнопкой мыши и т. д. Есть ли способ перечислить все значки, отображаемые на панели? Таким образом, я всегда могу захватить позицию и щелкнуть их таким образом. Какие-либо предложения?


person John    schedule 22.04.2011    source источник


Ответы (1)


Самый простой способ создать сценарий меню прожектора — просто отправить ключи через сценарий графического интерфейса. Я не думаю, что к нему можно получить доступ так, как вы хотите. Что касается того, почему ваш значок не будет отображаться, я не уверен. У него есть связанное с ним меню?

Легко перечислить все меню. Вот скрипт Python для этого. Затем вы можете использовать эти данные для прямого доступа к ним с помощью Appscript.

http://www.libertypages.com/clarktech/?p=2193

person Clark    schedule 22.04.2011
comment
Никогда не знал, что иконки там вверху называются менюлингами. В любом случае, да, с моим значком связано меню. И сценарий, на который вы ссылались, в значительной степени делал то, что делал я. Похоже, мне либо придется прибегнуть к сценариям графического интерфейса, либо, может быть, я еще немного покопаюсь и узнаю, почему значок не отображается, когда вы перечисляете все меню. - person John; 23.04.2011