Jak napisać skrypt AutoHotkey

AutoHotkey to fantastyczny, ale skomplikowany program. Początkowo miał na celu ponowne przypisanie niestandardowych skrótów klawiszowych do różnych akcji, ale obecnie jest to pełny pakiet automatyzacji systemu Windows.

AHK nie jest szczególnie trudny do nauczenia dla nowych użytkowników, ponieważ ogólna koncepcja jest dość prosta, ale jest to pełny, kompletny język programowania Turing. Znacznie łatwiej opanujesz składnię, jeśli masz doświadczenie w programowaniu lub znasz pojęcia.

Instalowanie i używanie AutoHotkey

Proces instalacji AutoHotkey jest prosty. Pobierz instalator z oficjalnej strony internetowej i uruchom ją. Wybierz opcję „Instalacja ekspresowa”. Po zainstalowaniu oprogramowania możesz kliknąć prawym przyciskiem myszy w dowolnym miejscu i wybrać Nowy> Skrypt AutoHotkey, aby utworzyć nowy skrypt.

Skrypty AHK to pliki tekstowe z rozszerzeniem .ahk. Jeśli klikniesz je prawym przyciskiem myszy, otrzymasz kilka opcji:

„Run Script” załaduje skrypt ze środowiskiem wykonawczym AHK.
„Compile Script” połączy go z plikiem wykonywalnym AHK, aby utworzyć plik EXE, który można uruchomić.
„Edytuj skrypt” otworzy skrypt w domyślnym edytorze tekstu. Możesz używać Notatnika do pisania skryptów AHK, ale zalecamy używanie SciTE4AutoHotkey, edytor dla AHK, który obsługuje podświetlanie składni i debugowanie.

skompilować skrypt autohotkey

Gdy skrypt jest uruchomiony – niezależnie od tego, czy jest to plik EXE, czy nie – działa on w tle w obszarze powiadomień systemu Windows, znanym również jako pasek zadań. Poszukaj zielonej ikony z literą „H”.

Aby wyjść, wstrzymać, załadować ponownie lub edytować skrypt, kliknij prawym przyciskiem myszy ikonę powiadomienia i wybierz odpowiednią opcję. Skrypty będą działać w tle, dopóki ich nie zamkniesz. Oczywiście znikną również po wylogowaniu się z systemu Windows lub ponownym uruchomieniu komputera.

uruchomiony skrypt autohotkey

Jak działa AutoHotkey?

W swej istocie AHK robi jedną rzecz – przypisuje akcje do skrótów klawiszowych. Istnieje wiele różnych akcji, kombinacji klawiszy skrótu i ​​struktur kontrolnych, ale wszystkie skrypty będą działać na tej samej zasadzie. Oto podstawowy skrypt AHK, który uruchamia Google Chrome po każdym naciśnięciu Windows + C:

#c::
Run Chrome
return

Pierwsza linia definiuje skrót klawiszowy. Znak funta (#) jest skrótem od klawisza Windows, ac to klawisz C na klawiaturze. Następnie jest podwójny dwukropek (: 🙂 oznaczający początek bloku akcji.

Następna linia to akcja. W tym przypadku akcja uruchamia aplikację za pomocą polecenia Uruchom. Blok kończy się powrotem na końcu. Przed zwrotem możesz wykonać dowolną liczbę akcji. Wszystkie będą strzelać sekwencyjnie.

Właśnie w ten sposób zdefiniowałeś proste mapowanie klucza do działania. Możesz umieścić tyle z nich, ile chcesz w pliku .ahk i ustawić go tak, aby działał w tle, zawsze szukając skrótów klawiszowych do zmiany mapowania.

Skróty klawiszowe i modyfikatory

Możesz znaleźć pełną listę modyfikatorów AHK w oficjalnej dokumentacji, ale skupimy się na najbardziej przydatnych (i fajnych) funkcjach.

Wszystkie klawisze modyfikujące mają skróty jednoznakowe. Na przykład, # ! ^ + to odpowiednio Windows, Alt, Control i Shift. Możesz także rozróżnić lewy i prawy Alt, Control i Shift za pomocą modyfikatorów, co otwiera dużo miejsca na dodatkowe skróty klawiszowe. Na przykład + to prawy Shift. Spójrz na lista kluczy na wszystko, do czego możesz się odwołać. (Spoiler: Możesz odwołać się do prawie każdego klawisza. Możesz nawet odwołać się do innych urządzeń wejściowych innych niż klawiatura z rozszerzeniem małe rozszerzenie).

Możesz połączyć dowolną liczbę klawiszy w jeden klawisz skrótu, ale wkrótce zabraknie Ci kombinacji klawiszy do zapamiętania. W tym miejscu pojawiają się modyfikatory, które pozwalają robić bardziej szalone rzeczy. Przełóżmy przykład z dokumentacji AHK:

dyrektywy autohotkey

Zielony #IfWinActive jest nazywany dyrektywą i nakłada dodatkowy kontekst na klawisze skrótu fizycznie znajdujące się pod nią w skrypcie. Każdy klawisz skrótu za nim będzie uruchamiany tylko wtedy, gdy warunek będzie spełniony, i możesz zgrupować wiele skrótów klawiszowych w ramach jednej dyrektywy. Ta dyrektywa nie zmieni się, dopóki nie trafisz na inną dyrektywę, ale możesz ją zresetować pustym #If (a jeśli to wygląda na włamanie, witamy w AHK).

Dyrektywa tutaj sprawdza, czy określone okno jest otwarte, zdefiniowane w Notatniku ahk_class. Kiedy AHK otrzyma dane wejściowe „Win + C”, uruchomi akcję pod pierwszym #IfWinActive tylko wtedy, gdy dyrektywa zwróci prawdę, a następnie sprawdzi drugą, jeśli nie. AHK ma wiele dyrektyw i wszystkie możesz znaleźć w dokumenty.

AutoHotkey ma również hotstrings, które działają jak skróty klawiszowe, z wyjątkiem zamiany całego ciągu tekstu. Jest to podobne do działania autokorekty – w rzeczywistości istnieje plik skrypt autokorekty dla AHK – ale obsługuje dowolną akcję AHK.

skróty autohotkey

Hotstring będzie pasował do łańcucha tylko wtedy, gdy zostanie dokładnie wpisany. Automatycznie usunie dopasowany tekst, aby zastąpić również hotstring, chociaż to zachowanie można dostosować.

działania

Akcja w AHK to wszystko, co ma zewnętrzny wpływ na system operacyjny. AHK ma wiele akcji. Nie możemy ich wszystkich wyjaśnić, więc wybierzemy kilka przydatnych.

Wysyłam wejście, czy to tekst, czy różne naciśnięcia przycisków.
Poruszanie myszą. W rzeczywistości AHK jest czasami błędnie oznaczany jako oprogramowanie do oszukiwania w grach wideo, ponieważ ludzie stworzyli z nim w pełni funkcjonalne aimboty.
Kliknięcie myszą, z pozycjonowaniem względem bieżącego okna.
Wyświetlanie menu dialogowych, wraz z formularzami i polami wprowadzania.
Przesuwanie okien, dostosowywanie rozmiaru oraz otwieranie i zamykanie.
Grać muzykę.
Zapisywanie do rejestru systemu Windows. Tak naprawdę.
Modyfikowanie zawartości Schowka.
Czytanie i zapisywanie plików. Możesz przeglądać pliki i uruchamiać akcje w każdym wierszu. AHK może nawet pisać do plików .ahk i dostosowywać swój własny kod.

Z większością tych działań będą również powiązane polecenia zorientowane na informacje. Na przykład możesz pisać do schowka, ale możesz także pobrać zawartość schowka do przechowywania w zmiennej i uruchamiać funkcje, gdy schowek się zmieni.

Powiązanie wszystkiego ze strukturami sterującymi

AHK nie byłby tym, czym jest bez wszystkich struktur kontrolnych, które go tworzą Turing – kompletny.

Oprócz dyrektyw #If masz również dostęp do Gdyby wewnątrz bloków akcji. AHK ma Dla pętle, klamra kręcona Bloki, Próbować i Catch oraz wiele innych. Możesz uzyskać dostęp do danych zewnętrznych z poziomu bloku akcji i przechowywać je w pliku zmienne lub obiekty użyć później. Możesz zdefiniować funkcje niestandardowe i etykiety. Naprawdę, wszystko, co możesz łatwo zrobić w innym języku programowania, prawdopodobnie możesz zrobić w AHK przy odrobinie bólu głowy i przejrzeniu dokumentacji.

Na przykład wyobraź sobie, że masz nudne, powtarzalne zadanie, które wymaga klikania wielu przycisków z rzędu i czekania na odpowiedź serwera, zanim wykonasz je ponownie w nieskończoność. Możesz użyć AHK do zautomatyzowania tego. Chciałbyś zdefiniować kilka pętli, aby przesunąć mysz w określone lokalizacje, kliknij, a następnie przejdź do następnego miejsca i kliknij ponownie. Dodaj kilka instrukcji oczekiwania, aby się nie zepsuło. Możesz nawet spróbować odczytać kolor pikseli na ekranie aby określić, co się dzieje.

Jedno jest pewne – Twój scenariusz prawdopodobnie nie będzie ładny. Ale nie jest też AutoHotkey i to jest w porządku.