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.
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.Odpowiedzi:
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”.
źródło
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.