Hogyan írjunk AutoHotkey szkriptet

AutoHotkey egy fantasztikus, de bonyolult szoftver. Eredetileg az egyéni gyorsbillentyűk különböző műveletekhez való hozzárendelését tervezték, de mára egy teljes Windows automatizálási csomag.

Az AHK-t nem különösebben nehéz megtanulni az új felhasználók számára, mivel az általános koncepció meglehetősen egyszerű, de ez egy teljes, Turing-komplett programozási nyelv. Sokkal könnyebben fogja felvenni a szintaxist, ha rendelkezik programozási háttérrel, vagy ismeri a fogalmakat.

Az AutoHotkey telepítése és használata

Az AutoHotkey telepítési folyamata egyszerű. Töltse le a telepítő a hivatalos webhelyről, és futtassa. Válassza az „Expressz telepítés” lehetőséget. A szoftver telepítése után kattintson a jobb gombbal bárhová, és válassza az Új > AutoHotkey Script lehetőséget egy új szkript létrehozásához.

Az AHK-szkriptek .ahk kiterjesztésű szövegfájlok. Ha rájuk kattint a jobb gombbal, néhány lehetőséget kap:

A „Run Script” betölti a szkriptet az AHK futási környezettel.
A „Compile Script” egy AHK futtatható fájllal fogja össze, hogy egy futtatható EXE fájlt készítsen.
A „Szkript szerkesztése” megnyitja a szkriptet az alapértelmezett szövegszerkesztőben. Használhatja a Jegyzettömböt AHK szkriptek írásához, de javasoljuk, hogy használja SciTE4AutoHotkey, az AHK szerkesztője, amely támogatja a szintaxis kiemelését és a hibakeresést.

Amíg egy szkript fut – akár EXE, akár nem – a Windows értesítési területén, más néven rendszertálcán a háttérben fut. Keresse meg a zöld ikont, amelyen „H” van.

A szkriptből való kilépéshez, szüneteltetéshez, újratöltéshez vagy szerkesztéshez kattintson a jobb gombbal az értesítési ikonra, és válassza ki a megfelelő lehetőséget. A szkriptek továbbra is futnak a háttérben, amíg ki nem lép belőlük. Természetesen akkor is eltűnnek, ha kijelentkezik a Windowsból, vagy újraindítja a számítógépet.

  Az Outlook biztonságos és blokkolt feladóinak exportálása és importálása

Hogyan működik az AutoHotkey?

Lényegében az AHK egy dolgot tesz: a műveleteket gyorsbillentyűkkel köti össze. Nagyon sok különböző művelet, gyorsbillentyű-kombináció és vezérlőstruktúra létezik, de minden szkript ugyanazon az elven működik. Íme egy alapvető AHK-szkript, amely elindítja a Google Chrome-ot, amikor megnyomja a Windows+C billentyűket:

#c::
Run Chrome
return

Az első sor egy gyorsbillentyűt határoz meg. A font jel (#) a Windows billentyű rövidítése, a c pedig a billentyűzet C billentyűje. Ezt követően egy kettős kettőspont (::) jelzi a műveleti blokk kezdetét.

A következő sor egy cselekvés. Ebben az esetben a művelet elindít egy alkalmazást a Futtatás paranccsal. A blokk a végén visszatéréssel fejeződik be. A visszatérés előtt tetszőleges számú műveletet végezhet. Mindegyik tüzelni fog egymás után.

Hasonlóképpen, Ön egy egyszerű műveleti kulcs-leképezést definiált. Ezek közül tetszőleges mennyiséget elhelyezhet egy .ahk fájlban, és beállíthatja, hogy a háttérben fusson, mindig keresve az újraleképezéshez szükséges gyorsbillentyűket.

Gyorsbillentyűk és módosítók

Megtalálhatja az AHK módosítóinak teljes listáját hivatalos dokumentációban, de mi a leghasznosabb (és legmenőbb) funkciókra fogunk összpontosítani.

A módosító billentyűk mindegyike egykarakteres rövidítéssel rendelkezik. Például, # ! ^ + a Windows, az Alt, a Control és a Shift billentyűk. A módosítókkal különbséget tehet a bal és jobb oldali Alt, Control és Shift között is, ami nagy teret nyit az extra gyorsbillentyűknek. Például a + jobbra Shift. Vessen egy pillantást a kulcslista mindenre, amire hivatkozhat. (Spoiler: Szinte minden billentyűre hivatkozhat. Még más, nem billentyűzetes beviteli eszközökre is hivatkozhat egy kis bővítmény).

Tetszőleges számú billentyűt kombinálhat egyetlen gyorsbillentyűbe, de hamarosan elfogy az emlékezni kívánt billentyűkombinációk. Itt jönnek be a módosítók, amelyek őrültebb dolgokat tesznek lehetővé. Nézzünk meg egy példát az AHK doksiból:

  Három módszer az okosotthon fejlesztésére

A zöld #IfWinActive-ot direktívának nevezik, és további kontextust alkalmaz a parancsfájlban fizikailag alatta lévő gyorsbillentyűkre. Az utána lévő gyorsbillentyűk csak akkor aktiválódnak, ha a feltétel igaz, és több gyorsbillentyűt csoportosíthat egy direktíva alá. Ez a direktíva addig nem változik, amíg meg nem talál egy másik direktívát, de visszaállíthatja egy üres #If-el (és ha ez feltörésnek tűnik, üdvözöljük az AHK-ban).

Az itt található direktíva azt ellenőrzi, hogy nyitva van-e egy adott ablak, amelyet az ahk_class Notepad határoz meg. Amikor az AHK megkapja a „Win+C” bemenetet, csak akkor indítja el az első #IfWinActive alatti műveletet, ha az direktíva igazat ad vissza, majd ellenőrzi a másodikat, ha nem. Az AHK-nak sok direktívája van, és mindegyik megtalálható benne a dokik.

Az AutoHotkey-nek is van hotstringek, amelyek úgy működnek, mint a gyorsbillentyűk, kivéve, hogy egy egész szövegláncot lecserélnek. Ez hasonló az automatikus javítás működéséhez – valójában van egy automatikus javítási szkript az AHK-hoz – de minden AHK-műveletet támogat.

A hotstring csak akkor fog megegyezni a karakterlánccal, ha pontosan be van írva. Ez automatikusan eltávolítja az egyező szöveget, hogy lecserélje a hotstringet is, bár ez a viselkedés módosítható.

Akciók

Az AHK-ban végrehajtott művelet minden olyan dolog, aminek külső hatása van az operációs rendszerre. Az AHK-nak sok akciója van. Valószínűleg nem tudjuk mindegyiket elmagyarázni, ezért kiemelünk néhány hasznosat.

Bemenet küldése, legyen szó szövegről vagy különféle gombnyomásokról.
Az egér mozgatása. Valójában az AHK-t néha tévesen jelölik meg csaló szoftverként videojátékokhoz, mivel az emberek teljesen működőképes aimbotokat készítettek vele.
Kattintson az egérrel, az aktuális ablakhoz viszonyított pozicionálással.
Dialógus menük megjelenítése, űrlapokkal és beviteli mezőkkel kiegészítve.
Az ablakok mozgatása, méretbeállítás, valamint nyitás és zárás.
Zenélés.
Írás a Windows rendszerleíró adatbázisába. Igen valóban.
A vágólap tartalmának módosítása.
Fájlok olvasása és írása. Végiglapozhat a fájlok között, és minden soron végrehajthat műveleteket. Az AHK még .ahk fájlokba is írhat, és beállíthatja saját kódját.

  Hogyan kell játszani a Nioh 2-vel Linuxon

A legtöbb ilyen művelethez információ-orientált parancsok is tartoznak. Például írhat a vágólapra, de a vágólap tartalmát változóban tárolhatja, és függvényeket futtathat, ha a vágólap megváltozik.

Összekötni az egészet vezérlőszerkezetekkel

Az AHK nem lenne az, ami az összes vezérlőstruktúra nélkül Turing-teljes.

Az #If direktívákon kívül hozzáférhet még Ha akcióblokkok belsejében. Az AHK-nak van Mert hurkok, kapcsos zárójel blokkok, Próbáld ki és Catch nyilatkozatok, és még sok más. Külső adatokat érhet el a műveleti blokkon belül, és tárolhatja azokat változók vagy tárgyakat később használni. Meg tudod határozni egyedi funkciók és címkéket. Valójában bármit, amit könnyen megtehetsz egy másik programozási nyelven, valószínűleg megtehetsz az AHK-ban is, ha kicsit fáj a fejed, és átnézed a dokumentumokat.

Képzelje el például, hogy van egy unalmas, ismétlődő feladat, amelyhez egymás után több gombra kell kattintania, és meg kell várnia a szerver válaszát, mielőtt a végtelenségig újra megtenné. Az AHK segítségével ezt automatizálhatja. Meg kell határoznia néhány hurkot, hogy az egeret meghatározott helyekre mozgassa, kattintson, majd lépjen a következő helyre, és kattintson újra. Adjon meg néhány várakozási nyilatkozatot, hogy ne törjön el. Akár meg is próbálhatnád leolvasni a képpontok színét a képernyőn hogy megállapítsa, mi történik.

Egy dolog biztos: a forgatókönyved valószínűleg nem lesz szép. De az AutoHotkey sem az, és ez rendben van.