Jak napsat skript AutoHotkey

AutoHotkey je fantastický, ale komplikovaný software. Původně bylo zamýšleno znovu svázat vlastní klávesové zkratky s různými akcemi, ale nyní je to úplná automatizační sada Windows.

AHK není pro nové uživatele zvlášť těžké se naučit, protože obecný koncept je poměrně jednoduchý, ale jedná se o úplný programovací jazyk Turing-complete. Syntaxi vyzvednete mnohem jednodušší, pokud máte programátorské zázemí nebo jste obeznámeni s koncepty.

Instalace a používání funkce AutoHotkey

Proces instalace AutoHotkey je přímočarý. Stáhněte si instalační program z oficiálních webových stránek a spusťte jej. Vyberte možnost „Expresní instalace“. Po instalaci softwaru můžete kliknout kdekoli pravým tlačítkem a vybrat Nový> Skript AutoHotkey a vytvořit nový skript.

Skripty AHK jsou textové soubory s .ahk příponou. Pokud na ně kliknete pravým tlačítkem, získáte několik možností:

  • Možnost „Spustit skript“ načte váš skript s běhovým modulem AHK.
  • „Compile Script“ jej spojí se spustitelným souborem AHK a vytvoří soubor EXE, který můžete spustit.
  • Možnost „Upravit skript“ otevře váš skript ve vašem výchozím textovém editoru. K psaní skriptů AHK můžete použít Poznámkový blok, ale doporučujeme použít SciTE4AutoHotkey, editor pro AHK, který podporuje zvýrazňování a ladění syntaxe.

Když je spuštěný skript - ať už je to EXE nebo ne - najdete jej spuštěný na pozadí v oznamovací oblasti systému Windows, také známé jako systémová lišta. Hledejte zelenou ikonu s písmenem „H“.

Chcete-li skript ukončit, pozastavit, znovu načíst nebo upravit, klepněte pravým tlačítkem na ikonu oznámení a vyberte příslušnou možnost. Skripty budou i nadále běžet na pozadí, dokud je neopustíte. Samozřejmě také zmizí, když se odhlásíte z Windows nebo restartujete počítač.

Jak funguje AutoHotkey?

AHK ve své podstatě dělá jednu věc - váže akce na klávesové zkratky. Existuje mnoho různých akcí, kombinací klávesových zkratek a řídicích struktur, ale všechny skripty budou fungovat na stejném principu. Zde je základní skript AHK, který spouští Google Chrome, kdykoli stisknete Windows + C:

#c :: Spustit návrat Chrome

První řádek definuje klávesovou zkratku. Znak libry (#) je zkratka pro klávesu Windows a c je klávesou C na klávesnici. Poté existuje dvojtečka (: :), která označuje začátek bloku akce.

Další řádek je akce. V tomto případě akce spustí aplikaci s Run příkazem. Blok je return na konci ukončen znakem . Před akcí můžete mít libovolný počet akcí return. Všichni budou střílet postupně.

Právě tak jste definovali jednoduché mapování kláves na akci. Můžete je vložit tolik, kolik chcete, do .ahk souboru a nastavit jej tak, aby běžel na pozadí a vždy hledal klávesové zkratky k přemapování.

Klávesové zkratky a modifikátory

Úplný seznam modifikátorů AHK najdete v oficiální dokumentaci, ale zaměříme se na nejužitečnější (a skvělé) funkce.

Všechny modifikační klávesy mají zkratky pro jeden znak. Například # ! ^ +jsou Windows, Alt, Control a Shift. Můžete také rozlišovat mezi levým a pravým Alt, Control a Shift pomocí modifikátorů <a >, což otevírá spoustu prostoru pro další klávesové zkratky. Například + je pravý Shift. Podívejte se na seznam klíčů se vším, na co se můžete obrátit. (Spoiler: Můžete odkazovat téměř na každou klávesu. Můžete dokonce odkazovat na jiná vstupní zařízení bez klávesnice s malou příponou).

Můžete kombinovat tolik kláves, kolik chcete, do jedné klávesové zkratky, ale brzy vám dojdou kombinace kláves, které si budete pamatovat. Zde přicházejí modifikátory, které vám umožňují dělat bláznivější věci. Rozdělme si příklad z dokumentů AHK:

Zelená #IfWinActivese nazývá  direktiva a aplikuje další kontext na klávesové zkratky fyzicky pod ní ve skriptu. Jakákoli horká klávesa po ní se aktivuje, pouze pokud je podmínka pravdivá, a můžete seskupit více klávesových zkratek do jedné směrnice. Tato směrnice se nezmění, dokud nenarazíte na jinou směrnici, ale můžete ji resetovat prázdnou #If(a pokud se to zdá jako hack, vítejte na AHK).

Směrnice zde kontroluje, zda je otevřené konkrétní okno definované pomocí ahk_class Notepad. Když AHK přijme vstup „Win + C“, spustí akci pod prvním #IfWinActive pouze v případě, že směrnice vrátila hodnotu true, a poté zkontroluje druhý, pokud se tak nestalo. AHK má mnoho směrnic a všechny najdete v dokumentech.

AutoHotkey má také horké řetězce, které fungují jako klávesové zkratky kromě nahrazení celého řetězce textu. To je podobné tomu, jak funguje automatická oprava - ve skutečnosti existuje automatický opravný skript pro AHK - ale podporuje jakoukoli akci AHK.

Hotstring bude odpovídat řetězci, pouze pokud je zadán přesně. Automaticky odebere odpovídající text a nahradí také horký řetězec, i když toto chování lze upravit.

Akce

Akce v AHK je cokoli, co má vnější vliv na operační systém. AHK má spoustu akcí. Nemůžeme je všechny vysvětlit, proto vybereme některé užitečné.

  • Odesílání vstupu, ať už jde o text nebo různá stisknutí tlačítek.
  • Pohyb myši. Ve skutečnosti je AHK někdy chybně označen jako podvodný software pro videohry, protože lidé s ním vytvořili plně fungující aimboty.
  • Kliknutí myší s umístěním vzhledem k aktuálnímu oknu.
  • Zobrazení dialogových nabídek spolu s formuláři a vstupními poli.
  • Pohybující se okna, nastavení velikosti a otevírání a zavírání.
  • Přehrávání hudby.
  • Zápis do registru Windows. Ano, skutečně.
  • Úpravy obsahu schránky.
  • Čtení a zápis souborů. Můžete procházet soubory a spouštět akce na každém řádku. AHK může dokonce zapisovat do .ahk souborů a upravovat svůj vlastní kód.

Většina z těchto akcí bude mít také přidružené informační příkazy. Můžete například psát do schránky, ale můžete také získat obsah schránky, aby se ukládal do proměnné a spouštěl funkce, když se schránka změní.

Spojení všeho pomocí řídicích struktur

AHK by nebyla tím, čím je, bez všech řídících struktur, díky nimž je Turing kompletní.

Kromě #Ifsměrnic máte také přístup do If vnitřku akčních bloků. AHK má For smyčky, bloky složených závorek Try a Catchpříkazy a mnoho dalších. V rámci akčního bloku můžete přistupovat k externím datům a ukládat je do proměnných nebo objektů, které budete používat později. Můžete definovat vlastní funkce a štítky. Opravdu všechno, co byste mohli snadno udělat v jiném programovacím jazyce, můžete pravděpodobně udělat v AHK s trochou bolesti hlavy a pohledem do dokumentů.

Představte si například, že máte nudný opakující se úkol, který vyžaduje, abyste klikli na více tlačítek v řadě a počkali, až server odpoví, než to uděláte znovu a znovu. K automatizaci můžete použít AHK. Chcete definovat několik smyček, kterými přesunete myš na konkrétní místo, kliknete a poté přejdete na další místo a znovu kliknete. Zahoďte několik prohlášení o čekání, aby se nerozbilo. Můžete dokonce zkusit přečíst barvu pixelů na obrazovce, abyste zjistili, co se děje.

Jedna věc je jistá - váš skript pravděpodobně nebude krásný. Ale ani AutoHotkey není, a to je v pořádku.