Odpowiednik Autohotkey?

47

Czy istnieje równoważny produkt / metoda dla AutoHotkey. Dla tych, którzy nie wiedzą, jest to produkt, który pozwala programować ruchy myszy i klawiatury. Pozwala mi to na „makro” niektórych funkcji w programach zamiast konieczności robienia tego ręcznie. W dawnych czasach nazywano je klawiaturą. Ale to tylko połowa rozwiązania, ponieważ potrzebuję też nadziewarki „ruchem myszy”.

Czy jest taka bestia?

Meer Borg
źródło

Odpowiedzi:

31

Istnieje port AutoHotKey dla Linuksa o nazwie IronAHK i podobne narzędzie o nazwie Autokey . Też nie korzystałem, nie wiem jak dobrze działają.

Poza takimi programami nie znajdziesz dokładnie tego samego rodzaju narzędzi do automatyzacji. Podstawowym narzędziem do automatyzacji użytkownika w systemach unix jest powłoka. Powłoka to klej łączący inne narzędzia: może uruchamiać programy zewnętrzne i kontrolować sposób wymiany danych. Sama powłoka nie zawiera niczego, co mogłoby manipulować koncepcjami GUI, takimi jak okna i wskaźnik myszy¹. To, co robisz, to nazywanie specjalistycznych narzędzi w skrypcie powłoki, w szczególności xdotool do manipulowania oknami oraz wstrzykiwania naciśnięć klawiszy i zdarzeń myszy .

Na przykład poniższy skrypt klika pozycję (40,20) w oknie Myapp.

#!/bin/sh
xdotool search --class Myapp \
        mousemove --window %1 40 20 \
        click 1

¹ Z wyjątkiem dtksh , ale nigdy nie widziałem jego portu w Linuksie.

Gilles „SO- przestań być zły”
źródło
Ładne podsumowanie, szkoda, że ​​projekt jest 4 lata nieaktualny, a wszystkie pliki binarne to 404, da jednak xdotool szansę. Dzięki za poświęcenie czasu.
Meer Borg
wypróbowałem xdotool, działa jak urok, ale zdecydowanie powinieneś przeczytać ich dokumenty przed rozpoczęciem
ConstantineK
1
AFAIK, IronAHK nigdy nie został w pełni wdrożony i został porzucony.
Joe
2

Możesz używać xautomation w Linuksie. Używam go na ekranach wyświetlacza Raspberry Pi, aby wysyłać odświeżenia strony F5 i klawisze „Return” (enter) dla logowania.

Andy Anderson
źródło
1

Pobierz Autohotkey na Linux. Utwórz plik Autohotkey (example.ahk). Użyj wina, aby uruchomić Ahk2Exe.exe z folderu Autohotkey. Skompiluj plik przyklad.ahk do przyklad.exe Przy pomocy wine uruchom plik przyklad.exe

Angelo
źródło
2
To nie jest dobra opcja. Na razie funkcjonalność Autohotkey uruchamianego przez wine jest bardzo ograniczona: appdb.winehq.org/… .
banan3'14
1

Istnieje kilka projektów, które rozwiązują ten problem. Dwa najbardziej aktywne, AFAIK, są sikuli i AutoKey (projekt pomogę wsparcie).

Nie używałem sikuli, ale wydaje się, że opiera się to na znajdowaniu wzorców na ekranie i uruchamianiu opartych na nich akcji.

AutoKey pozwala użytkownikowi definiować frazy wyzwalające i klawisze skrótu, które rozszerzają frazy (podobnie do bardzo potężnej funkcji autokorekty) lub uruchamiają skrypty napisane w Python3, które są ograniczone jedynie umiejętnościami programistycznymi użytkownika. Zapewnia interfejs API do generowania zdarzeń z klawiatury i myszy. Integruje się również z Xautomation, co pozwala znaleźć mały obraz na ekranie i przesunąć do niego kursor myszy.

Używam AutoKey od wielu lat i wspieram go na naszej liście . To jest jak szereg narzędzi zwiększających wydajność: możesz sobie bez tego poradzić, ale kiedy zaczniesz z niego korzystać, będziesz się zastanawiać, jak to zrobiłeś bez niego.

Niektóre szczegóły:

AutoKey nie działa z definicjami i skryptami AutoHotKey. Będą musiały zostać przepisane.

Napisałem skrypt bash sprawdzający koncepcję (dostępny na żądanie), który tłumaczy frazy AutoHotKey na frazy AutoKey, ale jest to tylko punkt wyjścia i ignoruje większość opcji AutoHotKey.

Ponieważ skrypty AutoKey są pisane w Python3, możliwe jest również wywoływanie narzędzi takich jak xdotool i wmctrl z poziomu skryptu w celu zapewnienia dodatkowej funkcjonalności, ale zazwyczaj nie jest to konieczne. Chociaż skrypty AutoKey są napisane w języku Python, całkiem sporo można osiągnąć przy bardzo ograniczonej znajomości języka Python. W większości przypadków nie musisz być płynnym programistą w języku Python.

Jeśli używasz dystrybucji opartej na Debianie, nie instaluj wersji AutoKey dostarczonej przez twoją dystrybucję. Ich pakiet AutoKey jest nieobsługiwany i bardzo stary. Pobierz aktualną wersję od nas .

Joe
źródło
0

... zaprogramuj ruchy myszy i klawiaturę. Pozwala mi to na „makro” niektórych funkcji w programach zamiast konieczności robienia tego ręcznie.

Kantu to wieloplatformowe narzędzie do automatyzacji pulpitu , które działa bardzo dobrze na Ubuntu (nie testowałem go na innych smakach)

Podstawowym narzędziem do automatyzacji użytkownika w systemach uniksowych jest powłoka.

Tak. Ale AHK i Kantu pozwalają użytkownikowi zautomatyzować zadanie w aplikacji poprzez symulację kliknięć myszą i pociągnięć klawiatury. Powłoka nie może tego zrobić. Używam go do automatycznych testów i kilku hacków wydajnościowych.

Oczywiście możesz połączyć kantu z pythonem lub uruchomić go bezpośrednio z powłoki.

Jim Grigoryan
źródło
2
Jim, jeśli jesteś powiązany z którymkolwiek z tych produktów, do których prowadzi link, pamiętaj, że Centrum pomocy tej witryny zawiera wytyczne dotyczące oczekiwanego zachowania w zakresie ujawniania swojego powiązania w odpowiedziach. Odpowiedzi, które tego nie obejmują, mogą zostać usunięte. Dziękuję Ci!
Jeff Schaller
0

Wystarczy użyć XEV i XMODMAP. PROSTE i lepsze niż dedykowane programy lub emulujące gówniane aplikacje Windows. Wszystkie moje rzeczy LINUX używają skryptów, aby przedefiniować klawisze i zmienić tryby ekranu, a następnie, kiedy program jest gotowy i kończy pracę, przywróć wszystko do normy. Jest tak samo łatwy w użyciu XMODMAP i napisaniu skryptu, jak napisanie skryptu AHK, ale z dodatkową zaletą braku konieczności uruchamiania emulowanej aplikacji Windows. A dla ludzi, którzy mówią, że nie możesz tego czy tamtego ... ŹLE. Możesz zrobić więcej z powłoki Linux niż jakikolwiek inny system operacyjny i możesz zrobić wszystko, o czym mówimy, w tym przesuwanie okien i nadal korzystać z wbudowanych poleceń systemowych!

MENTD
źródło
3
O ile wiem, ta odpowiedź może być w 100% poprawna i dokładna. Byłoby jednak o  wiele bardziej przydatne, gdyby zawierało kilka przykładów i / lub instrukcji, a nawet linki do dalszej dokumentacji.
Scott,