Czy możliwe jest utworzenie skrótu w Mountain Lion w celu kliknięcia myszą w określonym obszarze ekranu?


2

Obecnie oceniam jakość kilkuset tysięcy plików zawierających profile uderzeń serca gastropoda (tak!).

Aby ukończyć to zadanie, użyłem R do zaprogramowania interfejsu, który pozwala mi drukować jeden plik, zdecydować, czy jest dobry czy zły (jest wiele rzeczy, które się nie udają podczas robienia bicia serca ...), kliknij odpowiedni przycisk (OK vs BAD) i kontynuuj drukowanie następnego pliku.

Jest to interfejs, którego muszę użyć (nie ma dla niego substytutu) i nie ma potrzeby klikania w którykolwiek z przycisków (brak możliwości utworzenia skrótu do tego przycisku). Mógłbym użyć TAB, aby przełączać się między przyciskami, ale jest to całkowicie niepraktyczne, ponieważ będzie również przełączać się między przyciskami okna (PLIK, EDYCJA itp.).

Biorąc pod uwagę poprzednie, Zastanawiam się, czy istnieje sposób na stworzenie skrótu klawiaturowego do symulacji kliknięcia w określonym miejscu na ekranie ... w ten sposób mogłem ustawić 2 skróty do miejsc, w których znajdują się przyciski, co pozwala mi na przykład nacisnąć OPTION + G dla dobrych plików i OPTION + B dla złych bez konieczności kierowania myszy do rzeczywistego przycisku (przypomnij, że będę musiał to zrobić> 80000 razy ...). Z góry bardzo dziękuję!


jeśli możesz zdecydować, czy plik jest dobry czy zły, wizualnie badając dane, nie można zautomatyzować całego procesu akceptacji / odrzucenia ... całkowicie usunąć użytkownika (ciebie) z obrazu?
Sam Axe

Powinieneś być w stanie to zrobić za pomocą automatora lub jabłkowego
MaQleod

@ Dan-o: Chciałbym! ... Wykonuję zautomatyzowaną analizę każdego pliku, który może wykryć poważne błędy w odczycie bicia serca, ale większość błędów jest niewielka i wymaga wprowadzenia poprawek, dlatego muszę spojrzeć w każdym pliku. Chodzi o to, że czasami mogę dostać, powiedzmy, 100 plików z rzędu, które są dobre z 1 lub 2 pomiędzy, które są złe. Byłoby tak wygodnie po prostu nacisnąć klawisz, aby odrzucić te kilka plików bez konieczności sięgania po gładzik ... ponownie, & gt; 80000 plików (zgaduję, że będzie to ~ 2 tygodnie pełnej pracy ...)
ruisea

@ MaQleod: Nie mam żadnego doświadczenia z procedurami automatyzacji - czy możesz wysłać / skierować mnie na przykład?
ruisea

Po kilku dniach testowania dostarczonych odpowiedzi (moje i Lauriego), moja wydaje się być najlepsza. Niemniej jednak, nawet z moim otrzymuję to dziwne zachowanie, gdzie po dużej liczbie kolejnych zastosowań tej samej usługi automatora (około 1000 razy), X11 przestaje odpowiadać na usługę i muszę ponownie uruchomić komputer, aby ponownie działał. Wciąż jednak warto, jeśli chodzi o wydajność ...
ruisea

Odpowiedzi:


0

Próbować przypisywanie skrótu do skryptu takiego jak ten:

tell application "System Events"
    tell (process 1 where frontmost is true)
        click at {60, 5}
    end tell
end tell

Lub klikając przyciski bezpośrednio:

tell application "System Events"
    tell process "AppName"
        -- UI elements of window 1
        click button 2 of window 1
    end tell
end tell

Przykro mi, Lauri Ranta, ale nie mam wiedzy, aby zaimplementować to, co sugerujesz ... Próbowałem skopiować i wkleić twój pierwszy przykład w usługach automatora, ale bezskutecznie ... Czy możesz trochę rozwinąć więcej? Wydaje się to prostsze niż moja odpowiedź ...
ruisea

Wystarczy zapisać skrypty w edytorze AppleScript (jako scpt lub applescript) i użyć FastScripts przypisać skróty.
Lri

@ Lauri Ranta: OK, ale czy muszę wklejać dokładnie twoje przykłady, słowo po słowie, czy też powinienem dopasować części, aby odpowiadały moim potrzebom?
ruisea

W pierwszym skrypcie tylko współrzędne. W przypadku drugiego skryptu musisz włączyć dostęp do urządzeń pomocniczych w preferencjach dostępu i dowiedzieć się, jak określić przyciski ( Przeglądarka interfejsu użytkownika może w tym pomóc).
Lri

OK, twój przykład działa bez zarzutu. Próbowałem tylko pierwszego. Dla świeckich, takich jak ja, zredagowałem twoją odpowiedź, by dołączyć kilka kolejnych kroków. Wielkie dzięki, Lauri!
ruisea

1

Sądzę, że to oznacza, że ​​powinienem zrobić jeszcze dokładniejsze wyszukiwanie przed wysłaniem pytania, ale zgaduję, że będzie to również przydatne dla innych użytkowników, więc nie wszystko zostanie utracone.

Czekając na odpowiedzi i po tym, jak MaQleod poczuł się zmuszony do szukania trochę więcej informacji na temat procedur automatyzatora, które mogłyby robić to, czego potrzebowałem, znalazłem rozwiązanie.

Znalazłem tę bezpłatną aplikację typu shell / Terminal o nazwie „cliclick” (pobierz z http://www.bluem.net/en/mac/cliclick/ ). Umożliwia bardzo łatwe wykonywanie poleceń myszy przez Terminal.

Następnie trafiłem do automatora i utworzyłem następujący skrypt automatyzatora usług:

  • usługa nie otrzymuje danych wejściowych
  • użył akcji „uruchom skrypt powłoki”
  • Usunąłem ciąg „cat”, który pojawia się automatycznie
  • Wprowadziłem „cliclick -w 100 m: 970,870 c:”
    • '-w 100' = odczekaj 100 milisekund po każdym kroku
    • 'm: 970,870' = przesuń mysz na x = 970 iy = 870
    • 'do:.' = kliknij na obecnej pozycji

Dostałem współrzędne, używając skrótu COMMAND + SHIFT + 4, który natychmiast zamienia wskaźnik myszy w celownik, który wyświetla także współrzędne ekranu ...

Po zapisaniu tego małego skryptu jako usługi, musiałem po prostu przejść do Preferencji systemowych / Klawiatura / Skróty klawiaturowe / Serwis, poszukać moich nowo zapisanych usług automatora i ustawić skrót klawiaturowy oraz voilá!

Mam nadzieję, że ktoś inny uzna to za przydatne.


Dziękuję bardzo za wspaniałą odpowiedź. To bardzo pomaga.
whitesiroi

0

Myślę, że musisz iść xdotool

Jest uniksowy, bardzo dobrze udokumentowany, a ponieważ jesteś programistą, myślę, że nie będziesz miał problemu z jego zainstalowaniem. Uwielbiam słuchać, jak działa na Macu.


Dzięki H_7, z tego co czytam wydaje się, że może działać. W międzyczasie jednak znalazłem inne rozwiązanie, które od razu opublikuję - ma podobną logikę, jak to, co próbowałem z xdotool, gdyby nie udało się jeszcze. Twoje zdrowie.
ruisea

@ruisea oh, daj mi znać swoją drogę, czekając na post. powodzenia w tym!
H_7

1
ahah, mam zbyt niską reputację, mogę odpowiedzieć tylko na moje pytanie w ciągu 4 godzin ... wrócę wtedy
ruisea

pamiętaj, aby wznieść kopalnię -), jeśli uważasz, że to ok, oczywiście. = D
H_7

1
Tak, jestem całkiem pewien, że twoja sugestia również zadziała (ale nie wypróbowałem tego), ponieważ zdecydowanie pozwala przesunąć kursor myszy na współrzędną xy, a następnie kliknąć, co jest potrzebne do tego zadania. Wydaje mi się nawet, że xdotool jest bardziej wydajny niż rozwiązanie, które wkrótce opublikuję, choć nieco mniej proste. Co do upvote, to już próbowałem, ale znowu nie mam wymaganej minimalnej reputacji. Zdecydowanie poprze to, ponieważ mam 95% pewności, że Twoja sugestia zadziała ...
ruisea
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.