AutoHotkey - wstęp

AutoHotkey to jak sam się przedstawia - Potężny. Łatwy do nauki. Najlepszy język skryptowy do automatyzacji dla systemu Windows - zdecydowanie zgodzę się z tym pierwszym. Co do reszty, to poglądy są różne, ale nie zmienia to faktu, że jest to dla mnie jedno z kluczowych narzędzi na Windowsa, które pozwala ułatwić codzienną pracę w stopniu niezmiernym.

AHK może:

  1. Usprawnić wpisywanie tekstu np. zamiast o ile dobrze pamiętam wystarczy wpisać ]oidp
  2. Budować skróty klawiszowe(obsługuje też mysz) - proste np. zamknięcie okna klawiszem F4 jak i bardziej zaawansowane np. CAPSLOCK+G przywoła nam przeglądarkę i przełączy na kartę Gmaila, a jeżeli ta jest aktywna, to zminimalizuje okno; RButton&WheelUp - Przytrzymanie prawego przycisku myszki i ruch rolką w górę, przełączy kartę przeglądarki.
  3. Tworzyć proste interfejsy użytkownika np. okienko dodawania do pliku tekstowego - dla błyskawicznych notatek, wybór tekstu do wpisania z listy.
  4. Operować uruchomionymi programami i oknami - np. automatycznie zmienić położenie i rozmiar okna.
  5. Automatyzować powtarzalne czynności - np. otworzyć stronę, błyskawicznie wypełnić na niej pola, wysłać dane i zamknąć okno.
  6. Sterować ustawieniami systemowymi - np. wprowadzić push to talk - automatyczne wyciszenie mikrofonu o ile nie trzymamy określonego klawisza.

Poniżej przedstawię kilka założeń ogólnych dla zachęty, jednak nie jest moja intencją tworzenie tutoriala, bo dokumentacja AHK jest bardzo przystępna, a wpisanie w Google ahk problem X przeważnie daje nam konkretne rozwiązania.

W kolejnych artykułach postaram się pokazać praktyczne przykłady zastosowania AHK. Skróty, które sprawdziły się u mnie w boju.

Wszystkie przykłady z artykułów, wraz z komentarzami będą uaktualniane w repozytorium na GitHubie.

Instalacja

Program można pobrać stąd https://www.autohotkey.com/download/ instalacja nie jest wymagana, wystarczy rozpakować archiwum zip.

Jeszcze lepszym pomysłem jest skorzystanie z programu scoop wydajemy polecenie scoop install autohotkey

Hotstringi i hotkeye

Skrypty AHK opierają się na dwóch głównych składowych:

hotstring - rozwinięcie/zastąpienie wpisywanego tekstu, np. wpisanie @@ zostanie zamienione na Jan.Kowalski@mojadomena12.pl

hotkey - skrót klawiszowy, np wciśnięcie ALT+. wpisze (wielokropek) a wciśnięcie F1 przełączy kartę w firefoxie czy chrome na wcześniejszą (wygodniejsze rozwiązanie niż łamanie palców na CTRL+SHIFT+TAB)

Pierwszy skrypt

Hotstring

Tworzymy plik main.ahk o zawartości:

::]c::  ;;Cześć
(
Cześć,

)

Zapisujemy i odpalamy go. Jeżeli używamy aplikacji z rozpakowanego archiwum, do otwarcia wskażmy AutoHotkeyU64.exe. Skrypt odpali się i będzie rezydował w zasobniku (trayu).

Następnie otwórzmy np. notatnik i wpiszmy w nim ]c a następnie spację lub enter. Wpisany tekst ]c zostanie zastąpiony przez Cześć i linię odstępu. Tym sposobem mamy skrót do rozpoczynania maili. Dla kompletu dodajmy jeszcze zakończenie.

Hotstringi dobrze jest rozpoczynać w określony sposób, żeby uniknąć ich przypadkowego aktywowania. Ja zaczynam je jak widać od zamykającej klamry kwadratowej ]c popularne jest też stosowanie średnika ;c.

AHK tray Klikamy prawym przyciskiem myszy na na ikonce w trayu i z menu wybieramy Edit This Script. Otworzy się notatnik ze skryptem (domyślny program możemy zmienić w standardowy sposób - przypisując inny program do plików z tym rozszerzeniem).

dodajemy do skryptu:

::]p::  ;;Pozdrawiam Jk
(

Pozdrawiam
  Jan Kowaski
)
:*:@@::Jan.Kowalski@mojadomena12.pl ;; mail

i tu jeszcze wyjaśnienie zastosowanej składni:

  • () Objęcie wyrażenia w nawiasy okrągłe pozwala nam wstawiać wyrażenia wieloliniowe.
  • :*: dodanie gwiazdki przy definiowaniu hotstringa powoduje, ze jego aktywowanie nastąpi automatycznie po wpisaniu ostatniego znaku. Nie trzeba wciskać spacji czy entera. Wpisanie @@ podstawi adres e-mail.
  • ; Od średnika zaczynamy komentarze. W powyższym przykładzie podwójny średnik nie jest przypadkiem - wyjaśnię to w kolejnych artykułach.

Zapisujemy plik i klikamy prawym przyciskiem myszy na na ikonce w trayu i z menu wybieramy Reload This Script. Od tego momentu działają zmiany, które wprowadziliśmy.

Hotkey

Dodajemy do pliku

!.::  ;; wielokropek
Send …
Return

F1::Send {Ctrl Down}{PgUp}{Ctrl Up} ;;ff - poprzednia karta

Przeładowujemy skrypt i teraz:

  • wciśnięcie ALT+. (alt i kropka) wpisze (wielokropek). Opis modyfikatorów klawiszy niżej.
  • wciśnięcie F1 przełączy kartę na wcześniejszą (wygodniejsze rozwiązanie niż łamanie palców na CTRL+SHIFT+TAB)

Skróty zadziałają we wszystkich programach - potem przedstawię, jak limitować działanie skrótu tylko do obrębu jednej aplikacji, albo tylko jednego okna.

Tutaj też widzimy jedną z bolączek AHK - składnia lubi być dziwaczna i niejednoznaczna - możemy pisać polecenia w jednej linii, albo kolejnej, ale kończymy je za pomocą Return - możemy też stosować nawiasy klamrowe. Czasami po poleceniach wpisujemy przecinek, czasami nie, przy zmiennych może pojawiać się % albo i nie. Jako, że większość rozwiązań tworzyłem, wyszukiwałem, przerabiałem ad-hoc to nie pilnowałem składni. Działa, więc po co ruszać :).

Modyfikatory klawiszy

Skrót klawisz
# Win
! Alt
^ Ctrl
+ Shift

Czyli ^+w::Hello World! oznacza - wciśnięcie CTRL+SHIFT+w wypisze Hello World!*

Pełna lista klawiszy dostępna jest w dokumentacji.

Kompilacja skryptu do pliku wykonywalnego exe

AHK kompilacja

Do działania skryptu potrzebujemy jedynie pliku wykonywalnego AHK (wspomniany wyżej AutoHotkeyU64.exe) i pliku skryptu, ale możemy również kliknąć prawym przyciskiem myszy na pliku skryptu i wybrać opcję Compile script w wyniku czego otrzymamy nasz skrypt w postaci pojedynczego pliku .exe!

Repozytorium z przykładami - github

Jak już zaznaczyłem wyżej, wszystkie przykłady z artykułów, wraz z komentarzami będą uaktualniane w repozytorium na GitHubie.

Załadować komentarze?