Blog (1)
Komentarze (336)
Recenzje (0)

AutoHotKey — czyli narzędzie wielkiej improwizacji

@QooAutoHotKey — czyli narzędzie wielkiej improwizacji16.06.2015 13:33

Jak wynika z tytułu wpis będzie traktował o programie AutoHotKey, który służy mi wiernie w pracy od kilku lat, tak w codziennych czynnościach schematycznych, jak i do ratowania mnie w przypadkach zagrożenia żmudną pracą wymagającą wklepywania lub wyklikiwania setki razy tych samych danych w różnych nieprzyjaznych użytkownikowi programach.

Aby przybliżyć czytelnikom obraz typowego problemu z jakim najlepiej radzi sobie AHK opiszę jeden z gorszych przypadków, z jakimi się zetknąłem w pracy.

Dzień zapowiadał się całkiem nudno. Mimo dużej liczby zgłoszeń od pracowników żaden problem nie przekraczał stopniem komplikacji zamiany "z" z "y". Czułem przez czterodniowe skarpetki, że ta sielanka jest zbyt piękna, by potrwać dłużej. Kolejne zgłoszenie - zatytułowane "Zmiana dekretacji pism" - nie wyglądało też na szczególne wyzwanie. Dopiero treść zgłoszenia spowodowała pojawienie się na mojej głowie pierwszych siwych włosów. "Pracownik A oddelegowany do wydziału X przez okres nieobecności pracownika B zastępował go w pełnym zakresie czynności. W związku z tym, iż pism na bieżąco przychodzi do wydziału X bardzo duża ilość, po powrocie do pracy pracownika B należy na niego przedekretować zaległe pisma pracownika A, celem umożliwienia ich dalszej realizacji." Tknięty złym przeczuciem przefiltrowałem pisma pracownika A, by określić rozmiar czekającego mnie przedsięwzięcia. Pisma w liczbie ok. 300... Wiem, że w wydziale X taka liczba to norma, bo realizacja pism idzie tam taśmowo i tyle samo ich przychodzi, ile wychodzi, od lat. Problem tkwił gdzie indziej. W systemie obiegu dokumentów - będącym zamkniętym oprogramowaniem - tak ze strony pracownika, jak i administratora przedekretowanie tych pism oznaczało konieczność wybrania z menu opcji, wyklikania jeszcze innych opcji na dwóch kolejno pojawiających się podformularzach, wyszukania pracownika na liście i wreszcie zatwierdzenia. W tym miejscu mała dygresja, bo pewnie wielu z Was podniesie głosy, że to powinien być psi obowiązek pracownika, który za te pisma odpowiadał. Przyznam, że też tak myślałem, ale póki nie stwierdziłem czy da się to jakoś ułatwić nie wytaczałem jeszcze armaty. Perspektywa wyklikania tego wszystkiego razy 300 była bardzo niekomfortowa. Same dokumenty można łatwo, z poziomu administratora, edytować za pomocą własnych skryptów. Wiem jednak z doświadczenia, że sama opcja dekretacji ma zaszyte o wiele więcej funkcji niż zmiana nazwiska z A na B. Wiedziałem, że stosowanie chałupniczych rozwiązań po pewnym czasie może, ale nie musi zaowocować jakąś przykrą niespodzianką. Ryzykować nie miałem zamiaru. Najrozsądniej było więc wykonać natywną dekretację jak Pan Bóg (i twórcy oprogramowania) przykazali. W tym miejscu - w ciemnych okularach i w koszulce z napisem "who's the boss?" - na plan wchodzi AutoHotKey. Potem już tylko układanka poleceń TAB, ENTER itp. i mogłem się przyglądać jak pisma się ładnie dekretują. Byłbym kłamcą, gdybym powiedział, że obeszło się bez mojej ingerencji. Każdy system może - jak wiadomo - zaliczyć tzw. lag i skrypt, który wyprzedziłby pojawiające się formularze mógłby sprawić dużo kłopotów. Moja praca ograniczyła się więc do wywołania skryptu razy 300 i nadzorowania go na bieżąco. Łącznie zajęło to jakieś 20 minut - ok. 4 sekund na dokument. Problem z głowy.

Zazwyczaj AHK służy mi do podmieniania tekstu w sytuacjach takich jak udzielenie standardowej - lecz wymagającej rozpisywania się - odpowiedzi na standardowe pytanie użytkownika. Inne przypadki to drobiazgi typu zamiana "zw" na "zaraz wracam". Doskonale nadaje się do szybkiego wysyłania wiadomości e-mail. W przypadku starego laptopa z uwalonym klawiszem PrtScr można było ten klawisz wywołać kombinacją innych klawiszy (całkiem znośne rozwiązanie). Ogólnie mówiąc wg. mnie ten program to pogromca źle zaplanowanych, nieergonomicznych interfejsów użytkownika.

Sporo pytań dotyczących AHK krąży wokół wykorzystania go jako klikacza w rozmaitych aplikacjach, a to, żeby coś kupić w necie, innym razem do nabijania statystyk (power gaming) lub karmienia kurek o poranku.

Przyznam, że z mało w sumie przydatnych zastosowań AHK zaciekawiła mnie wizja skryptu rysującego w programie graficznym - w opisie funkcji MouseClickDrag jest nawet przykład takiego zastosowania rysujący domek w MS Paint (u mnie nie mieści się w obszarze rysowania – pewnie przystosowany do starszych wersji Painta):

[code=]Run, mspaint.exe WinWaitActive, ahk_class MSPaintApp,, 2 if ErrorLevel return MouseClickDrag, L, 150, 250, 150, 150 MouseClickDrag, L, 150, 150, 200, 100 MouseClickDrag, L, 200, 100, 250, 150 MouseClickDrag, L, 250, 150, 150, 150 MouseClickDrag, L, 150, 150, 250, 250 MouseClickDrag, L, 250, 250, 250, 150 MouseClickDrag, L, 250, 150, 150, 250 MouseClickDrag, L, 150, 250, 250, 250[/code]

Oczywiście, żeby narysować coś konkretnego i cieszącego oko, należałoby to opłacić niesamowitym nakładem pracy. W bardziej skomplikowanym obrazie jeden piksel zajmowałby linijkę kodu. Dodając do tego komendy pozwalające zmienić kolor - masakra. Chciałem jednak tego spróbować na czymś prostym np. "Bitwa pod Grunwaldem" Matejki (żart oczywiście). Postanowiłem stworzyć jakiś bzdurny napis bez krzywizn i zaokrągleń (lenistwo pierwszej wody). Przy tworzeniu tych skryptów wspomagałem się excelem, funkcją złączania tekstu i dość dużą możliwością przekształcania gotowych już elementów. Poza tym sortowanie kodu po określonych współrzędnych lub ich wymieszanie daje całkiem fajne efekty końcowe, podobnie jak używanie różnych kombinacji narzędzi do rysowania (np. rysowanie grubym pędzlem jednym kolorem i powtórzenie cienkim z innym kolorem). Zabawa pracochłonna, jednak po stworzeniu skryptu daje możliwość powtarzalnego tworzenia i eksperymentowania na tym samym rysunku.

http://wklej.to/Ira9X

Zawiera dwa skrypty uruchamiane odpowiednio: WIN+S (mniej rozbudowany napis) i WIN+X (bardziej rozbudowany)

Z bardziej zakręconych zastosowań takich skryptów byłyby np. życzenia urodzinowe rysujące się na komputerze "ofiary" :)

Teraz miejsce na moje złośliwe zagranie. Taki chłyt martetindody. Ale jako rasowy fanboj nie mogę sobie darować takiej niecnej próby zachęcenia chociaż kilku osób do zainstalowania tego programu i... nie zamieszczę efektów działania tych skryptów.

Zalecane:

  1. Zainstalować AHK, wkleić skrypty i z menu ‘file’ uruchomić ‘reload script’.
  2. Uruchomić MS Paint lub inny program do bazgrolenia (w przypadku programów z szeroką wstążką kursor może się nie wstrzelić).
  3. Obszar rysowania ustawić mniej więcej 800px szerokości i 200px wysokości
  4. Wybrać w miarę wąski pędzel i dowolny kolor (odróżniający się od tła - doradził mi to pewien stary góral).
  5. Uruchomić skrypt skrótem.

I wreszcie koniec tej mojej laurki pod adresem AHK :)

Pozdrawiam

PS. Pierwszy kto użyje w komentarzu tl;dr będzie... pierwszy

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.