2015-04-17 2 views
1

Я хочу создать AppleScript щелкнуть меню, но я не могу, что когда-либо сценарий, я с помощью, здесь меню я хочу:AppleScript вариант Строка меню нажмите

ELEMENT : 
Role : menu item 
Title: "sign in As..." 
Description : 
Help: 
Application: SytemUIServer 

ELEMENT PATCH (starting at leaf element): 
menu Item "Sign in As..." (menu item 12) 
    menu (menu 1) 
    menu extra (menu bar item 2) 
    menu bar (menu bar 1) 
     application "SystemUIServer" 

Так что я сделал несколько сценарий , последний из которых был

ignoring application responses 
    tell application "System Events" to tell process "SystemUIServer" 
     click menu bar item 2 of menu bar 1 
    end tell 
end ignoring 
do shell script "killall System\\ Events" 
delay 0.1 
tell application "System Events" to tell process "SystemUIServer" 
    tell menu item 12 of menu 1 of menu bar item 2 of menu bar 1 
     click 
    end tell 
end tell 

Кроме того, я просто понимаю, что позиция может измениться (какое-то время этот пункт я хочу нажать это пункт 12 меню иногда его 10 и т.д.)

+0

ЭЛЕМЕНТ: Роль: пункт меню Название: "знак в качестве ..." Описание: Помощь: Применение: SytemUIServer ЭЛЕМЕНТ PATCH (начиная с листа элемента): меню Элемент «Вход в систему. .."(пункт меню 12) меню (меню 1) меню дополнительно (строка меню пункт 2) строка меню (строка меню 1) приложение" SystemUIServer " –

ответ

4

в вашем вопросе, вы Бесполезный 't указать имя пункта меню и имя приложения, которому принадлежит элемент меню. Это проблема.

Во-первых, SystemUIServer только запускать пункты меню/значки, относящиеся к OS X. Чтобы увидеть значки, которые он запускает, выполните эти три строки отдельно в Script Editor.

1)

tell application "System Events" to tell process "SystemUIServer" ¬ 
to number of menu bars 

2)

tell application "System Events" to tell process "SystemUIServer" ¬ 
to value of attribute "AXDescription" of menu bar items of menu bar 1 

3)

tell application "System Events" to tell process "SystemUIServer" ¬ 
to title of menu bar items of menu bar 2 

Результаты должны выглядеть примерно так:

1) 2

2) {"Wi-Fi, four of four bars, with WiFiName.", "Battery: Charged ", "Clock"}

3) {"Notification Center", missing value}

сторонних приложений, а также Spotlight, управлять своими собственными пунктов меню/иконки. Прожектор, например:

tell application "System Events" to tell process "Spotlight" ¬ 
to title of menu bar items of menu bar 1 

Это дает: {"Spotlight"}

Если у вас есть Caffeine:

tell application "System Events" to tell process "Caffeine" ¬ 
to title of menu bar items of menu bar 1 

Вы получаете: {missing value}, потому его не программист потрудился назвать предмет.

Так что если это сторонняя строка меню, которую вы пытаетесь выполнить, это не в SystemUIServer. Если вы ссылаетесь только на элемент меню с позицией вместо имени, вы не можете надежно нажимать ее каждый раз.

McUsr вставил эту строку, чтобы сохранить изменение, которое должно быть не менее 6 символов.

+0

привет, спасибо за ваш ответ, имя панели меню его «apple connect» и его встроенный в «SystemUIServer» –

Смежные вопросы