Blog (7)
Komentarze (191)
Recenzje (1)

Zautomatyzuj swoje życie, czyli prosty blog o AutoHotKey — epizod 5

@BriHecatoZautomatyzuj swoje życie, czyli prosty blog o AutoHotKey — epizod 523.06.2018 19:31

Witajcie ponownie

Długa przerwa od ostatniego odcinka spowodowana była najnormalniejszym w świecie urlopem który spędziłem nad polskim morzem. Bez przeciągania wstępu możemy wrócić do zabawy ze skryptami i próbami ułatwienia sobie życia z windowsem dzięki AHK.

Zajrzyj do poprzedniego: Epizod 4

W pierwszym odcinku (wstępie) pokazałem hotstringi. Nie rozwodziłem się nad nimi zbytnio z tego względu że, osobiście ich nie używam. Jednak mimo innych planów stwierdziłem że nie mogę tego tematu zostawić bez kilku dodatków.

Hotstringi są prostym i fajnym wynalazkiem. Ich zachowanie różni się tym od Hotkeyów że działają w trakcie pisania (Eureka), nie musisz zastanawiać się nad wciskaniem dodatkowych klawiszy (jak shift), po prostu piszesz. Z tego względu najwięcej przykładów zastosowania jakie spotkałem to autokorekta, wstawianie podpisów i komentarzy:

::sie::się
::rze::że
::rozni::różni
::ciekwae::ciekawe
::bh::BriHecato

"IntelliSense" czyli takie ułatwienie kodowania:

::sen:: Send,
::sle:: Sleep,
::sle1:: Sleep, 10
::cli:: Click,
::mcl:: MouseClick,
::mom:: MouseMove,

Parametry

Na tym nie kończą się możliwości ani opcje. Ponieważ między pierwsze dwa dwukropki możemy wstawić parametry, pierwszym jest gwiazdka

:*:hotstring:: <pełny tekst>

powoduje to tylko tyle że hotstring "zaskoczy" zaraz jak go wpiszemy, ponieważ-gdyż domyślne działanie tej funkcji "zaskakuje" gdy po tekście hotstringa wpiszemy spacje lub enter (lub inny "ending character" czego nie rozwijam), więc można by stwierdzić że nie jest to tak super w pełni automatyczne.

Mogą występować sytuacje gdy nie chcemy wpisywać tej spacji - np. mamy taką parę hotstringów używanych we formularzu logowania:

:*:b@:: bri@mojapoczta.pl
:*:has:: Moj3h4slo_Dop0czty

Domyślnie hotstringi są nieczułe na wielkość znaków jakie aktywują hotstring, jednak dodanie parametru "c" pozwala na uzyskiwanie różnych efektów:

:c:btw:: by the way
:c:BTW:: BY_THE_WAY

Gdybyśmy mieli hotstringi bez parametru - tzn "::btw::" - "bajdełej" i "::BTW::" - "biuro techniczno wysyłkowe" - to wpisanie dużego BTW przyniosło by efekt w postaci "BAJDEŁEJ" (nie zostałby rozpoznany drugi hotstring).

Warto jeszcze wspomnieć o parametrze "b0" (be i zero), powoduje on że nie jest kasowany (zastępowany) tekst hotstringa, a pełny tekst jest dodawany. Najprościej jest to wyjaśnione przykładem z pomocy AHK - zamykanie tagów (czy nawiasów):

:*b0:`<div`>::</div>
:*b0:`<a href=""></a>
:*b0:{::{}}

W powyższych przykładach pierwszy zamknie tag pojemnika

, drugi uzupełni cały tag łącza o niezbędne elementy do wypełnienia, trzeci po prostu wstawi zamykającą klamrę. Bardzo przydatne (o ile wasz edytor kodu już tego nie ma w sobie, a i tak wtedy można to sobie rozbudować w taki sposób jaki nam najbardziej odpowiada).

Wypada mi w tym miejscu wyjaśnić po co akcenty w treści hotstringa i potrójne klamry w pełnym tekście. Nie zaczynamy zdania od "a więc", a więc zarówno nawias "trójkątny" jak i klamra są znakami o specjalnym znaczeniu w AHK i aby ich użyć w ich normalnej formie (czyli we formie nawiasu) musimy użyć "uciekającej postaci" (escape character, zabawne... ).

Dla nawiasu trójkątnego jest to znak akcentu "`" (na klawiszu z tyldą, nazywany również "odwrotnym apostrofem"). Natomiast aby wysłać otwierającą lub zamykającą klamrę musimy ją wpisać w klamry. {}} - daje efekt w postaci zamkniętego nawiasu (klamry). O ile nawiasy i klamry nie są aż tak popularne to znak akcentu jest wykorzystywany w AHK całkiem często.

Jak jesteśmy przy nawiasach to może zastanawiacie się ile tekstu można wstawić takim hotstringiem. Nie wiem szczerze czy ktoś to testował ale z kilkoma linijkami nie ma problemu, wystarczy zawarcie ich w nawiasach :

::text1::
(
pierwsza linijka.
druga.
trzecia.
	czwarta i ostatnia.
)

Wiersze z nawiasami nie mogą zawierać innego tekstu, zauważyłem także że dopiero kropka z enterem działa jak nowy wiersz (inaczej sklei linijki w jedną). Zachowane jest wcięcie zrobione za pomocą tabulatora.

Wykrywanie kontekstu

Tutaj nie ma co odkrywać ameryki - hotstringi wpisane poniżej jakiejkolwiek dyrektywy #IfWinActive odnoszącej się do jakiejkolwiek aplikacji czy okna (poprzez exe, klasę lub tytuł) działają tylko i wyłączenie w tej aplikacji (czy oknie). Wpisane na początku skryptu (powyżej jakichkolwiek dyrektyw) działają wszędzie.

Jeżeli nie macie dość to możecie skoczyć do następnego odcinka.

PostScriptum.

W kwestii wyjaśnienia - plan na ten epizod był inny, miał on (odcinek nie plan) mieć charakter podsumowujący ale w trakcie pisania i sprawdzania materiałów okazało się że jest tam "more than meets the eye", zdecydowałem się podążyć tą ścieżką zamiast zrobić wszystko po łebkach.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.