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.