Skrót do aplikacji menubar w Mavericks


1

Mam aplikację Mountain App działającą na moim pasku menu (jest to aplikacja, która umożliwia szybki montaż i odmontowanie dysków podłączonych do komputera). Chciałbym stworzyć prosty skrypt, który wywoła menu w aplikacji (która działa tylko na pasku menu). Próbowałem postępować zgodnie z instrukcjami i kodem znalezionym tutaj: Utwórz skrót klawiszowy, aby otworzyć aplikację paska menu? , zastępując nazwę aplikacji, jeśli to konieczne

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

ale to nie zadziałało dla mnie, dając mi błąd w 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"

Gra z menu i innymi elementami kodu nigdy nie aktywowała menu. Próbowałem też stworzyć Applecript „Watch Me Do”, ale będzie on działał tylko w automatorze i nie mogłem go uruchomić globalnie ani w żadnej innej aplikacji.

Nie jestem programistą ani programistą, więc polegaj na jakimś poziomie kreatywności i wyszukuj go w poszukiwaniu tego. Ktoś ma sugestię? Wydaje się, że to taka prosta rzecz, ale moje poszukiwania wykazały, że tak nie jest.

EDYCJA: Widziałem narzędzie kliknij kliknięcie zasugerowano gdzie indziej jako sposób na kliknięcie myszą. Jednak rozumiem, że dla kliknięcia kliknięciem dokładne współrzędne Mountain na pasku menu musiałyby pozostać takie same. Czy w tym przypadku jest to poprawne założenie? Jeśli sobie przypomnę, te ikony na pasku menu zmieniają lokalizację przy każdym ponownym uruchomieniu lub po zamknięciu aplikacji menu.


Kodowanie AppleScript jest tutaj na temat, więc zobaczmy, czy ktoś ma rozwiązanie. Pomocne może być edytowanie pytania w celu dodania kodu, który próbujesz uruchomić (w miarę możliwości zredukowanego do części krytycznej).
nohillside

Patrix, niestety nie jestem zbytnio koderem. Nie mam więc zbyt wiele do pokazania poza kodem z powyższej strony i moje słabe próby wstawienia „Góry” w miejsce innej nazwanej aplikacji.
SFH

W takim razie proszę, w ten sposób łatwiej jest ci pomóc.
nohillside

Po pierwsze, spróbowałem tego: ignoring application responses tell application "System Events" to tell process "Mountain" click menu bar item 1 of menu bar 1 end tell end ignoring To nic nie dało.
SFH

Odpowiedzi:


1

Problemem w tym przypadku wydaje się to, że Mountain.app nie jest „właściwą” częścią paska menu, przynajmniej jeśli chodzi o „Zdarzenia systemowe”.

Możesz to również zobaczyć, gdy używasz ( fn +) ctrl + F8 ; Powinno to skupić klawiaturę na menu stanu, dzięki czemu można je nawigować za pomocą klawiszy strzałek. Niektóre dodatkowe elementy menu (np. Menu iStat) mogą być wybierane w ten sposób, podczas gdy inni nie mogą. To, jak sądzę, przekłada się na dostępność dzięki AppleScript poprzez „Zdarzenia systemowe”.


To interesujący punkt. Ale jedyne, na których mogę się skupić na używaniu (fn +) ctrl + F8, to pozycje menu statusu jabłka. Mam tam kilka innych aplikacji menu DriveGenius, Choosy, ClamXAV, f.lux, Mountain, Boom, Xmarks, Quicksilver, żaden z nich nie jest dostępny za pomocą wbudowanego skrótu. Trudno mi uwierzyć, że nie ma sposobu, aby to zrobić!
SFH

Na przykład @ShadyHakim menu iStat jest dostępne za pomocą skryptów GUI (spróbuj uruchomić tell application "System Events" to tell process "SystemUIServer" to get value of attribute "AXDescription" of every menu bar item of menu bar 1 aby sprawdzić, jakie są dodatki do menu). Myślę, że łatwiej byłoby ci zapytać, jaką funkcję próbujesz uruchomić (podłączanie / wysuwanie wielu dysków,…), ponieważ prawdopodobnie jest to rozwiązanie skryptowe.
Asmus

Dzięki, Asmusie. Sprawdzę to, kiedy wrócę do domu. Powodem, dla którego chcę aktywować to menu, jest to, że szybko daje mi spojrzenie na to, jakie dyski są lub nie są zamontowane. Mam już kilka skryptów do montowania i odmontowywania dysków, z których regularnie korzystam (w tym skrypt, który z powodzeniem zamapowałem na moim przycisku wysuwania w celu odmontowania mojego optibay HD za pomocą skryptu, który kojarzyłem razem i skrócony za pomocą Quicksilver).
SFH

Tak, żadna z wymienionych aplikacji menubarowych nie znalazła się w wynikach. Co teraz?
SFH

Wyniki: {"Wiadomości", "maszyna czasu", "bluetooth", "Wi-Fi, cztery z czterech pasków, z 28. Ulicą (N).", "Głośność systemu", "Bateria: naładowany", "tekst input "," Clock "}
SFH
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.