Доступ к сторонним меню (менюлетам) через applescript?

Можно ли получить доступ к сторонним меню через applescript? (Эти значки отображаются в правом верхнем углу строки глобального меню).

В основном я хочу знать, включен ли определенный пункт меню (который отображается при нажатии значка) или отключен (выделен серым цветом).

Любые ресурсы по этому поводу?

Спасибо


person Community    schedule 18.06.2012    source источник


Ответы (1)


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

tell application "SystemUIServer" to activate

set theProps to {}
tell application "System Events"
    tell process "SystemUIServer"
        set menulets to menu bar items of menu bar 1
        repeat with aMenu in menulets
            if (description of aMenu) is "clock" then
                click aMenu -- we have to open it to access the menu items inside it
                delay 0.2
                set clockMenuItems to menu items of menu 1 of aMenu
                repeat with aMenuItem in clockMenuItems
                    set end of theProps to {title of aMenuItem, enabled of aMenuItem}
                end repeat
            end if
        end repeat
    end tell
end tell

return theProps

Обратите внимание, что некоторые из этих менюлетов не являются обычными менюлетами. К ним вы должны относиться по-разному, но концепция та же. Вы щелкаете менюлет, затем получаете доступ к его пунктам меню и проверяете их свойство enable.

person regulus6633    schedule 19.06.2012