Гаряча клавіша до меню програми в Mavericks


1

У моєму рядку меню запущено додаток Mountain (це додаток, що дозволяє швидко встановлювати та відключати диски, підключені до комп'ютера). Я хотів би створити простий скрипт, який викликає меню в додатку (який запускається тільки в рядку меню). Я спробував дотримуватися інструкцій і коду, знайденого тут: Створити гарячу клавішу, щоб відкрити меню програми? , замінюючи назву програми, де це доречно

launch application "System Events"
  delay 0.2
  ignoring application responses
    tell application "System Events" to tell process "Mountain"
      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 "Mountain"
    tell menu bar item 1 of menu bar 2
      click menu item 2 of menu 1
    end tell
  end tell

але це не працює для мене, даючи мені помилку в Applescript:

error "System Events got an error: Can’t get menu 1 of menu bar item 1 of menu bar 1 of process \"Mountain\". Invalid index."
    number -1719 from menu 1 of menu bar item 1 of menu bar 1 of process "Mountain"

Відтворення з меню та інших частин коду ніколи не отримали додаток для активації меню. Я також спробував створити "Watch Me Do" applescript, але він буде працювати тільки в автоматизаторі, і я не міг змусити його працювати глобально або в будь-якому іншому додатку.

Я не кодер або програміст, тому розраховуйте на певний рівень творчості і гуляючи навколо, щоб розібратися в цьому. Хто-небудь має пропозицію? Здається, це таке просто, але мої пошуки виявили, що це не так.

EDIT: Я бачив інструмент clickclick запропоновано в іншому місці як спосіб виконання клацання миші. Тим не менш, я розумію, що для clickclick для роботи, точні координати гори в рядку меню повинні залишатися тими ж. Це правильне припущення в даному випадку? Якщо я пам'ятаю, ці піктограми в рядку меню змінюють розташування кожного перезапуску або, якщо додаток меню виходить.


Кодування AppleScript тут на тему, так що давайте подивимося, чи є у когось рішення. Це може допомогти, якщо ви редагуєте запитання, щоб додати код, який ви намагаєтеся запустити (якщо це можливо, зменшіть його до критичної частини).
nohillside

Patrix, на жаль, я не багато кодер. Так що я не маю багато чого показати, крім коду з вищезгаданої пов'язаної сторінки, і мої слабкі спроби вставити "Гору" замість іншого названого додатка.
SFH

Тоді зробіть це, будь ласка, вам набагато легше допомогти.
nohillside

Спочатку я спробував: ignoring application responses tell application "System Events" to tell process "Mountain" click menu bar item 1 of menu bar 1 end tell end ignoring Це нічого не робило.
SFH

Відповіді:


1

Проблема в даному випадку полягає в тому, що Mountain.app не є "належною" частиною рядка меню, принаймні, що стосується "Системних подій".

Ви можете побачити це також під час використання ( fn +) ctrl + F8 ; це повинно покласти фокус клавіатури на меню статусу, так що ви зможете переміщатися за допомогою клавіш зі стрілками. Деякі додаткові елементи меню (наприклад, меню iStat) може бути обраним таким чином, інші не можуть. Це, на мою думку, означає доступність з AppleScript через "Системні події".


Це цікавий момент. Але єдині, які я можу зосередити на використанні (fn +) ctrl + F8 - це пункти меню статусу apple. У мене є купа інших програм меню там DriveGenius, Choosy, ClamXAV, f.lux, Гора, Бум, Xmarks, Quicksilver, жоден з них не доступний з вбудованим ярликом. Мені важко повірити, що немає можливості зробити це!
SFH

Наприклад, для меню @ShadyHakim iStat є доступні за допомогою графічного інтерфейсу (спробуйте запустити tell application "System Events" to tell process "SystemUIServer" to get value of attribute "AXDescription" of every menu bar item of menu bar 1 , щоб перевірити, які додаткові меню є). Я думаю, що вам буде простіше запитати, яку функцію ви намагаєтеся викликати (підключення / витягання декількох дисків,…), оскільки існує, ймовірно, рішення для сценаріїв.
Asmus

Дякую, Асмус. Я перевірю це, коли я повернуся додому. Причина, по якій я хочу активувати це меню, полягає в тому, що вона швидко дає мені на перший погляд перспективу на те, що диски є або не встановлені. У мене вже є кілька сценаріїв для монтажу та демонтажу накопичувачів, які я регулярно використовую (включаючи одну з них, яку я успішно зіставив з моєю кнопкою вилучення для розмотування мого оптика HD зі сценарієм, який я хотів разом і гарячим клавішею з Quicksilver).
SFH

Так, жодне з перелічених меню не відображається в результатах. Тепер що?
SFH

Вихідні дані були: {"Повідомлення", "Машина часу", "Bluetooth", "Wi-Fi, чотири з чотирьох смуг, з 28-ою вулицею (N).", "Системна гучність звуку", "Акумулятор: Заряджений", "текст" "", "Годинник"}
SFH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.