Jak kodować skrypt AppleScript, aby kliknąć myszą na pasku menu?


2

Mam niesamowitą aplikację Pomodoro, ale nie ma skrótów klawiaturowych do jej uruchamiania i wstrzymywania. Próbowałem kodować AppleScript przez ostatnią godzinę, czytając odnośnik AppleScript i przeszukując online, ale nigdzie nie mam.

Chcę mieć AppleScript (zostanie uruchomiony z aplikacji o nazwie BetterTouchTool), kliknij współrzędne na pasku menu (aplikacja Pomodoro działa w tle, a ja mam wszystkie potrzebne współrzędne), potrzebne jest przesunięcie kursora aby drugi kursor cofnął się (aby wrócić do początkowej pozycji kursora), kliknij drugi raz na rozwijanej pozycji „Start / Pauza” (ze współrzędnych), a następnie wykonaj drugi kursor wstecz, aby kursor powrócił do oryginalnego pozycja.

EDYCJA: aplikacja jest aplikacją czasową (na pasku menu) z rozwijanym menu, które jako pierwszy element zawiera „Start”, „Pauza” lub „Wznów” - co chcę mieć możliwość kliknięcia za pomocą klawiatury -znakowany AppleScript.

EDIT2: dotarliśmy tak daleko:

tell application "System Events" 
    click (click at {1447, 10}) 
end tell 
tell application "System Events" to tell process "Pomodoro Timer" 
    click (click at {1456, 37}) 
end tell

Ale nie wiem, jak zakodować kursor i otrzymuję ten błąd:

W przypadku zdarzeń systemowych wystąpił błąd: nie można uzyskać elementu paska menu „00:58” menu   takt 2 procesu aplikacyjnego „Pomodoro Timer”.

Czy ktoś mógłby mi pomóc?



Pełniejsze informacje na temat „aplikacji Pomodoro” powinny zostać uwzględnione w Twoim pytaniu. Dodatkowo, jeśli ta aplikacja działa jako menu extra , to może być skryptowalne bez potrzeby zewnętrznego Kliknij program typu. Jednak bez dodatkowych informacji na temat tej „aplikacji Pomodoro” nie ma sensu komentować dalej.
— user3439894

Moją sugestią jest otwarcie edytora skryptów i kliknięcie Okno na pasku menu. Następnie przewiń w dół i kliknij Biblioteka . Zostanie wyświetlona lista aplikacji znajdujących się obecnie w bibliotece edytora skryptów. Jeśli aplikacji, której szukasz, nie ma na tej liście, możesz spróbować kliknąć + a następnie nawigacja do folderu Aplikacje, w którym znajduje się aplikacja. Po wybraniu aplikacji kliknij otwarty . Jeśli aplikacja jest skryptowalna, powinna zostać dodana do Biblioteki edytora skryptów, gdzie możesz przeczytać, jak ją napisać, aby zrobić to, co chcesz.
— I0_ol

@ user3439894 To aplikacja czasowa (na pasku menu) z rozwijanym menu, które jako pierwszy element zawiera „Start”, „Pauza” lub „Wznów”.
— samseva

@ user556068 Oh, niesamowita sugestia. Aplikacja nie jest skryptowalna, ale Photoshop jest. Dzięki, że może się przydać.
— samseva

Odpowiedzi:


1

Istnieje dodatek do skryptów o nazwie „AppleScript Toolbox” (to osax). Zdobądź to https://astoolbox.wordpress.com/

Dzięki temu możesz po prostu napisać:

AST click at {10, 20}

Na przykład kliknie pasek menu i otworzy menu Apple.

Jeśli chcesz zachować pierwotną pozycję kursora, użyj tego:

set origPos to AST mouse point location

Aby go przywrócić, użyj:

AST set mouse point location origPos

Niesamowite. Użycie tego kodu powoduje, że kursor myszy kliknie menu rozwijane, ale dodanie drugiego „kliknięcia AST przy {10, 20}” nie powoduje kliknięcia myszą w pozycji menu, ale powoduje tylko przesunięcie kursora myszy nad nim. Jaki kod muszę zainicjować kliknięcie?
— samseva

Prawdopodobnie powoduje to podwójne kliknięcie, co nie jest tym, czego chcesz. Spróbuj dodać „opóźnienie 1” między kliknięciami.
— Thomas Tempelmann

To działa. Tęsknię za ostatnią rzeczą. Jakiego kodu potrzebujesz, aby kursor powrócił do pierwotnej pozycji?
— samseva

Spójrz na słownik AST, np. za pomocą edytora skryptów. Znajdziesz tam podobne komentarze, aby uzyskać i ustawić pozycję myszy bez klikania. Daj mi znać, jeśli nie możesz tego zrozumieć. Ponadto, jeśli ta odpowiedź ci pomogła, proszę ją zaznaczyć i zaakceptować jako pomocną odpowiedź. Ponadto może być pomocne dla innych, jeśli dodasz swoje ostateczne rozwiązanie do swojego pytania.
— Thomas Tempelmann

Cześć Thomas. Przeszukałem Edytor skryptów, a także Przewodnik języka AppleScript, ale nie mogłem znaleźć niczego na temat „cofania kursora”. W tej chwili mam: tell application "System Events" AST click at {808, 13} delay 0.1 AST click at {808, 33} end tell Działa, ale kursor kończy się w miejscu, w którym kliknie, a następnie musisz przywrócić kursor tam, gdzie był pierwotnie. Czy wiesz, gdzie szukać kodu „kursora wstecz” (wiem, że istnieje, widziałem go już kilka razy: D)?
— samseva
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.