AutoHotKey. Szybciej, lepiej, więcej…

AutoHotKey LogoCodziennie spędzam przed komputerem sporo czasu. Poza pracą, w której jest to moje najważniejsze narzędzie, są jeszcze sprawy osobiste i rozrywka. Jestem przekonany, że nie jestem pod tym względem oryginalny. Czytasz ten tekst, więc jestem gotów się założyć, że u Ciebie jest podobnie. Pisałem do tej pory o różnych aplikacjach do zarządzania zadaniami oraz sposobach na zwiększenie osobistej produktywności. Dzisiejszy artykuł jest dobrym uzupełnieniem tego tematu, choć na pierwszy rzut oka nie musi być to takie oczywiste. Chciałbym przedstawić Ci rozwiązanie, dzięki któremu możesz zaoszczędzić kilka sekund swojego cennego czasu, oraz odciążyć trochę swoje szare komórki. Kilka sekund nie brzmi okazale, ale jeśli przemnożymy je przez dziesiątki, czy setki razy, kiedy wykonujemy daną czynność, daje to już znaczące oszczędności. Jak to możliwe? Odpowiedzią i sponsorem dzisiejszego artykułu jest słowo AUTOMATYZACJA.

Instalacja i rozpoczęcie pracy

Aplikacją, którą chciałbym Ci przedstawić jest AutoHotKey (dalej AHK). Aplikacja jest projektem open source i działa na systemach Windows. To zdecydowanie jedna z pozycji obowiązkowych, jeśli korzystasz z tej platformy. Sprowadzając wszystko do prostych słów, AHK pozwala na automatyzację praktycznie dowolnych czynności w systemie i aplikacjach na nim zainstalowanych. Od razu uprzedzam, że opiszę tutaj relatywnie najprostsze scenariusze, które pozwolą automatycznie wpisywać dowolne ciągi znaków. To tylko wierzchołek góry lodowej możliwości tego narzędzia. Na końcu artykułu znajdziesz kilka linków z fajnymi przykładami innych zastosowań. Zacznijmy jednak od początku.

Aktualną wersję AutoHotKey znajdziesz tutaj: http://ahkscript.org/ . Klikasz, ściągasz i właściwie możesz już zacząć pracę. Do tego potrzebny Ci będzie edytor tekstowy. Zwykły Notatnik wystarczy (ja używam Notepad++, który trochę upraszcza cały proces). Plik tekstowy musi mieć rozszerzenie .ahk i oczywiście odpowiednią składnię. AHK integruje się z systemem i skrypty możesz kompilować i uruchamiać z menu podręcznego.

Protip. Sugeruję umieszczanie skryptów w folderze OneDrive, Dropbox czy Google Drive. Oprócz automatycznej kopii w chmurze będziesz mógł wykorzystywać te same skrypty na wielu komputerach. Korzystam z takiego rozwiązania i sprawdza się znakomicie.

Tworzymy pierwszy skrypt

Praca z AHK sprowadza się do trzech podstawowych kroków:

  1. Utworzenie skryptu
  2. Kompilacja
  3. Uruchomienie

Zacznijmy od pierwszego. Jak każdy język skryptowy, tak i AHK wykorzystuje swoją specyficzną składnię. Nie będę jej opisywał. Pełną dokumentację znajdziesz w internecie. Na początek polecam stronę https://autohotkey.com/docs/Tutorial.htm.

Zamiast opisywać czysto techniczne zagadnienia pokażę Ci działający przykład. Plik gotowego skryptu, który przygotowałem, możesz ściągnąć tutaj:

Protip. Skrypt AHK.png

AHK_Demo.zip

Mój skrypt przede wszystkim uzupełnia dane, które często pojawiają się w różnego rodzaju dokumentach/formularzach (mail, adres, nip), albo takich, które są ważne i niekoniecznie łatwe do zapamiętania(numery kart, kont bankowych, nip). Pozwoli też, szybko wpisywać standardowe odpowiedzi mailowe oraz wykonywać kilka czynności po wciśnięciu odpowiedniej kombinacji klawiszy (zamknięcie systemu, wyłączenie monitora, uruchomienie ulubionej aplikacji). Jestem pewien, że bez trudu zorientujesz się jak to działa i w jaki sposób dostosować ten skrypt do swoich potrzeb.

Pełna treść pliku poniżej. Tekst po znaku ’;’ to komentarze. Wszystkie dane są fikcyjne:

 

[code lang=”ahk”]
#1:: ; <Windows> + 1 Wyłączenie monitora

Sleep 1000

SendMessage, 0x112, 0xF170, 2,, Program Manager ; 0x112 is WM_SYSCOMMAND, 0xF170 is SC_MONITORPOWER.

return

; Szybkie wyłączenie komputera <Windows> + s

#s::

run, shutdown /s /f /t 0

; Adresy email

::_mail1::jan.automatyczny@contoso.com

::_mail2::automatycznyj@outlook.com

; Nip

::_nip::1112223344

; Numer dowodu osobistego

::_do::ABC102030

; Pesel

::_pesel::81010144567

; Regon

::_regon::135797531

; KRS

::_krs::0000114466

; Adres

::_adres::Protip Blog, ul. Automatyczna 111, 01-234 Warszawa

; Numery kont bankowych (przykłady)

::_konto1::831450100200309105035

; lorem (do mockupów)

::_lorem::Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque finibus nisl nec mauris blandit, sit amet aliquet turpis maximus. Vestibulum suscipit euismod diam, ac vestibulum urna feugiat a. Sed gravida lectus sed elit auctor dictum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Proin non faucibus lectus. Suspendisse potenti. Vestibulum luctus metus at nisi accumsan semper.

; Odpowiedź mailowa 1. Podziękowanie za współpracę

::_odp1::Witam serdecznie,`nBardzo dziękuję za propozycję, ale w tej chwili nie będę zainteresowany współpracą.`nPozdrawiam,`nJan Automatyczny.

; Odpowiedź mailowa 2. Dane do faktury (`n – nowa linia)

::_odp2::Witam serdecznie,`nDziękuję za miłą współpracę. Proszę o wystawienie faktury na te dane:`n`nJan Automatyczny`nAdres: `nNIP: `nEmail: `nRegon: `n`nPozdrawiam,`nJan Automatyczny.

; Uruchom witrynę Todoist (Ctrl+Shift+t)

^+t:: Run "https://todoist.com"

return
[/code]

Po zapisaniu skryptu należy go skompilować, co spowoduje utworzenie wykonywalnego pliku z rozszerzeniem exe. Plik uruchamiasz dwukrotnym kliknięciem. To czy został działa, zweryfikujesz zerkając na zasobnik systemowy:

Protip. Dobrym pomysłem jest dodanie tego pliku, lub skrótu do niego, w katalogu autostart. Dzięki temu będzie uruchamiany automatycznie wraz z samym systemem. W Windows od 7 w górę możesz go znaleźć w tej lokalizacji: %AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Testy

Pozostaje wypróbować nasz skrypt. Po wpisaniu zdefiniowanych w skrypcie słów kluczowych (np. _nip, _konto1,itp.), AHK powinien zamieniać je na odpowiednie teksty. Patrząc na treść, zauważyłeś zapewne, że dla wszystkich słów kluczowych stosowałem zawsze ten sam przedrostek (czyli „_”). Zmniejsza to praktycznie do zera szansę, że kiedyś będziesz musiał użyć np. słowa „_nip” zamiast faktycznego numeru oraz ułatwia zapamiętywanie samych słów kluczy. Zamiast zamieniania ciągów znaków, mógłbyś ich wpisywanie równie dobrze skojarzyć z wybraną kombinacją klawiszy. Możliwości jest wiele. Poniżej krótkie nagranie z testów.

https://youtu.be/6npyxvrCchw

Zachęcam Cię teraz do przeprowadzenia własnych eksperymentów, nawet jeśli ograniczy się to do edycji mojego przykładowego pliku. Uwierz mi na słowo, że po krótkim czasie wszystkie te skróty i akronimy mocno zapadną Ci w pamięć i zaczniesz ich używać automatycznie. U mnie utrwaliły się na tyle mocno, że siadając do cudzego komputera, zdarza mi się wciskać kilkukrotnie kombinację Ctrl+Shift+t i zastanawiać się, czemu nie otwiera się witryna Todoist J.

Podsumowanie

Mam nadzieję, że ten materiał okaże się dla Ciebie pomocnym. Jestem przekonany, że jak tylko zaczniesz korzystać z AHK, to trudno Ci będzie z niego zrezygnować. Czas poświęcony na naukę składni, znalezienie przykładowych skryptów i w końcu utworzone własnego, zwróci się z nawiązką.

Na koniec zostawiam jeszcze kilka przydatnych łączy, dla tych z Was, którzy chcą wejść w ten temat trochę głębiej:

Jeśli macie swoje ulubione skrypty, czy triki w AHK, to pochwalcie się nimi w komentarzach. Ten temat na pewno wróci na łamach bloga w przyszłości. Tymczasem pozdrawiam Cię serdecznie i do następnego razu.

Subscribe
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

4 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments
Marcin
Marcin
4 grudnia 2019 14:26

Witam.
Chciałbym stworzyć skrypt w autohotkey.
Zbyt krótko żyję abym mógł to ogarnąć, mogę zrobić ogrzewanie w domu ale z tym już mam schody, dlatego prosiłbym szanowne grono o pomoc.
Mianowicie:
Po wciśnięciu skrótu np. ctrl+i będzie wyświetlało się :

_1_n-tekst gdzie n to będzie zmienna zaczynająca się od 1 do 100
tj:
_1_1-tekst
_1_2-tekst
_1_3-tekst

Te wyrażenie będę chciał umieszczać w nazwie plików, ułatwiło by mi to sprawę. Bo obecnie muszę zmieniać za każdym razem cyferkę.

Stworzyłem sobie już takie coś….

<^r::Send _1_n-tekst
tylko nie wiem jak to n zrobić aby rosło 1,2,3,4 za każdym razem jak wcisnę skrót klawiszowy.

P.S. W katalogu jest np. 40 plików pdf, czy ten skrypt będzie "rósł" tylko w tym katalogu? Czy jak przejdę do następnego katalog z plikami to będzie kontynuacja cyfr? Chciałbym aby w każdym katalogu zaczynać od 1.
Pozdrawiam i proszę o pomoc, bo doba jest dla mnie za krótka aby to robić…

marion
marion
30 czerwca 2021 22:20

Witam.A jak mam inne pytanko czy tym programikiem da się otworzyć np.parę stron internetowych które zawierają na swojej stronie okno wyszukiwarki i po wpisaniu skopoiowniu jakiegos wyrażenia ono automatycznie wklei się we wszystkie okna wyszukiwarek i zacznie wyszukiwać w obrębie srton.

Łukasz Falaciński
Łukasz Falaciński
1 lipca 2021 11:25
Reply to  marion

To, co opisujesz bardziej pasuje do scenariusza automatyzacji/RPA. W świecie MS, to Power Automate i Power Automate Desktop. Ten drugi za chwilę ma być integralną częścią Windows 10 (czytaj: będzie darmowe). Ostatni robiliśmy webinar zahaczający o ten temat. Tu link: Jedna mała analiza, wielki krok dla optymalizacji. Process Advisor. Webinar 2021.06.11 – Akademia Aplikacji To nie do końca prezentacja RPA, ale pokazuje ogólnie zasadę działania (odpal aplikacje, odpal RPA, nagraj proces, dodaj parametry, automatyzuj). PS. Wiem, wiem, dźwięk nie jest idealny 😉