Czy istnieje polecenie Terminala, aby otworzyć element paska menu komputera Mac?

7

Załóżmy, że chcę otworzyć konkretną aplikację, która ma ikonę na pasku paska menu, czy można to zrobić za pomocą polecenia powłoki?

W moim przypadku istnieje aplikacja o nazwie „Szybki podgląd kalendarza” (dostępna w Mac App Store), która pojawia się na pasku menu, którą chciałbym otworzyć za pomocą polecenia Terminal i użyć tego kodu do uruchomienia usługi Automator w celu

Rathan
źródło
Czy możesz opisać, jakie kroki zwykle wykonujesz, aby otworzyć aplikację? Na przykład, czy wystarczy po prostu kliknąć ikonę na pasku menu, czy trzeba kliknąć prawym przyciskiem myszy i wybrać opcję menu? Czy istnieje skrót klawiaturowy, który otwiera aplikację? Jeśli potrafisz odpowiedzieć na te pytania, być może będę w stanie zapewnić ci praktyczne rozwiązanie.
CJK
To jedno kliknięcie, aby otworzyć aplikację. Domyślnie nie ma skrótu.
Rathan
Jeśli naprawdę chcesz to zrobić przez TERMINAL, a wybrana odpowiedź NIE pomaga ci - ponieważ niektóre aplikacje są nieskryptowalne - istnieje wszechstronne rozwiązanie opisane w linku poniżej, które udostępnia proste polecenie „kliknij x y”. (Na tej stronie znajdziesz procedur, jak zainstalować go w czasie 10 minut.) Stackoverflow.com/questions/4230867/...
clemsam lang

Odpowiedzi:

6

Ponieważ wszystko, co jest wymagane, to jedno kliknięcie ikony paska menu w celu otwarcia aplikacji, AppleScript może to bardzo łatwo osiągnąć za pomocą skryptów GUI, co wymaga przyznania odpowiednich uprawnień dostępu do dowolnego programu, którego użyjesz do uruchomienia AppleScript (np. edytor skryptów , automator , terminal itp.).

Najpierw udziel odpowiednich uprawnień za pomocą Preferencji systemowych . Ten zrzut ekranu pochodzi z systemu MacOS 10.13:

Preferencje systemowe w systemie MacOS 10.13

Po zakończeniu otwórz Edytor skryptów i uruchom ten skrypt. Nie mam Szybkiego widoku kalendarza , ale zasady dla większości aplikacji paska menu są takie same, więc mam nadzieję, że uzyska listę nazw aplikacji zawierających ikony na pasku menu:

    tell application "System Events" to get the name of ¬
        every process whose class of menu bar 2 is menu bar 

„Szybki podgląd kalendarza” lub coś odpowiednio podobnego powinno pojawić się na liście zwracanej przez uruchomienie tego polecenia. To nazwa, której użyłem w poniższym fragmencie, czyli tym, co faktycznie robi, czego potrzebujesz, a mianowicie kliknięciu myszą ikony paska menu i otwarciu aplikacji. Jeśli nazwa jest inna, możesz to zmienić samodzielnie:

    tell application "System Events" to tell process "Quick View Calendar" to ¬
        click menu bar item 1 of menu bar 2

Możesz wkleić ten kod do działania Uruchom AppleScript w Automatorze (ponownie, pod warunkiem, że Automatorowi przyznano uprawnienia dostępu), który następnie stanie się częścią Twojego procesu tworzenia usługi, którą chcesz utworzyć.

Pierwotnym żądaniem było uruchomienie polecenia z terminala w celu wykonania tej czynności, aby można było po prostu otworzyć terminal (ponownie, uprawnienia dostępu!) I wpisać:

    osascript \
        -e 'tell application "System Events" to ¬' \
        -e 'tell process "Quick View Calendar" to ¬' \
        -e 'click menu bar item 1 of menu bar 2'

Jeśli napotkasz jakiekolwiek problemy, daj mi znać.

CJK
źródło
1

Terminal (bash, csh, zsh, i in.) Nie „otwiera” poleceń paska menu. Po to jest AppleScript - wykonuje skrypt GUI.

Aby aplikacja „wykonała” opcję / funkcję w wierszu poleceń, do której normalnie można uzyskać dostęp za pośrednictwem paska menu, należy przekazać parametry wiersza polecenia. Zazwyczaj polecenie wygląda następująco:

$ command -x [optional arguments]

Powyższe polecenie zostanie wykonane z flagą opcji x(gdzie xjest dowolna flaga akceptowana przez polecenie) i dowolnymi opcjonalnymi argumentami dla tej flagi.

Zastrzeżenie polega na tym, że aplikacja musi zaakceptować opcje wiersza poleceń. Jeśli nie, nic nie możesz napisać w wierszu poleceń, aby zrobić to, co chcesz.

W takim przypadku spójrz na AppleScript, ale pamiętaj, że nie wszystkie aplikacje są skryptowalne pod AppleScript.

Allan
źródło
Zawsze jest skryptowanie GUI (ale wymaga ono pozwolenia na dostęp).
SilverWolf,
0

Możesz skompilować bardzo prostą 14-liniową aplikację Framework Foundation, która odtąd da ci możliwość kliknięcia dowolnego punktu x / y na ekranie,

[Treść wycofana z powodu masowego anonimowego głosowania w dół ...]

clemsam lang
źródło
[Jeśli głosujesz w dół na odpowiedź, która ma pomóc innym (lub przynajmniej daje wskazówki), bądź tak uczciwy, aby napisać jedno krótkie zdanie DLACZEGO go nie lubisz! ]
clemsam lang 11.1118