AutoHotkey szkript írása

Az AutoHotkey egy fantasztikus, de bonyolult szoftver. Eredetileg az egyedi gyorsbillentyűk újbóli visszacsatolását célozták meg, de ma már 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-teljes programozási nyelv. Sokkal könnyebben veszi fel a szintaxist, ha programozási háttere van, 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őt a hivatalos webhelyről, és futtassa. Válassza az „Express 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 parancsfájl lehetőséget egy új parancsfájl készítéséhez.

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

  • A „Szkript futtatása” betölti a parancsfájlt az AHK futásidejével.
  • A „Compile Script” egy AHK futtatható fájllal fogja összeállítani a futtatható EXE fájlt.
  • A „Szkript szerkesztése” megnyitja a szkriptet az alapértelmezett szövegszerkesztőben. A Notepad segítségével írhat AHK parancsfájlokat, de javasoljuk a SciTE4AutoHotkey, az AHK szerkesztőjének használatát, amely támogatja a szintaxis kiemelését és hibakeresését.

Amíg egy szkript fut - legyen az EXE vagy sem -, a háttérben fut a Windows értesítési területén, más néven rendszer tálcán. Keresse meg a zöld ikont, rajta egy „H” betűvel.

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

Hogyan működik az AutoHotkey?

Alapjában véve az AHK egy dolgot csinál - a gyorsbillentyűkhöz köti a műveleteket. Nagyon sok különböző művelet, gyorsbillentyű kombináció és vezérlő struktúra létezik, de az összes szkript ugyanazon az elven működik. Itt van egy alapvető AHK szkript, amely elindítja a Google Chrome-ot, amikor megnyomja a Windows + C billentyűt:

#c :: A Chrome return futtatása

Az első sor meghatároz egy gyorsbillentyűt. A font (#) a Windows billentyű rövidítése, és c a C billentyű a billentyűzeten. Ezt követően egy kettős kettőspont (: :) jelöli az akcióblokk kezdetét.

A következő sor egy cselekvés. Ebben az esetben a művelet elindít egy alkalmazást a Run paranccsal. A blokk végén egy return a van. A. Előtt tetszőleges számú műveletet végezhet return. Mindannyian egymás után fognak lőni.

Pontosan így definiált egy egyszerű kulcs-cselekvés leképezést. Ezekből annyit helyezhet el, amennyit csak akar, egy .ahk fájlba, és beállíthatja, hogy a háttérben fusson, mindig keresve az újratervezésre szolgáló gyorsbillentyűket.

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

A hivatalos dokumentációban megtalálhatja az AHK módosítóinak teljes listáját, de a leghasznosabb (és a legjobb) funkciókra összpontosítunk.

A módosító billentyűk mindegyike egy karakteres rövidítéssel rendelkezik. Például # ! ^ +a Windows, az Alt, a Control és a Shift. Különbséget tehet a bal és a jobb Alt, Control és Shift között a <és a >módosítókkal is, ami nagy teret nyit az extra gyorsbillentyűk számára. Például a + helyes Shift. Vessen egy pillantást a kulcslistára, ahol mindent megtalál. (Spoiler: Szinte minden kulcsra hivatkozhat. Még más, nem billentyűzetes beviteli eszközökre is hivatkozhat, kis kiterjesztéssel).

Összehozhat annyi gombot, amennyit csak akar, egy gyorsbillentyűbe, de hamarosan elfogynak az emlékezetes billentyűkombinációk. Itt jönnek be a módosítók, amelyek őrültebb dolgokat tesznek lehetővé. Bontjunk le egy példát az AHK dokumentumokból:

A zöldet direktívának#IfWinActive hívják  , és további kontextust alkalmaz a parancsfájl alatt fizikailag található gyorsbillentyűkre. Bármely gyorsbillentyű csak akkor aktiválódik, ha a feltétel igaz, és több gyorsbillentyűt csoportosíthat egy irányelv alá. Ez az irányelv addig nem változik, amíg nem ér el egy másik irányelvet, de üresen állíthatja vissza (és ha ez hacknek tűnik, üdvözöljük az AHK-nál).#If

Az irányelv itt ellenőrzi, hogy nyitott-e egy adott ablak, amelyet a ahk_class Notepad. Amikor az AHK megkapja a „Win + C” bemenetet, csak akkor indítja el az első műveletet, #IfWinActive ha az irányelv igaz, majd ellenőrzi a másodikat, ha nem. Az AHK-nak nagyon sok direktíva van, és mindegyiket megtalálhatja a dokikban.

Az AutoHotkey rendelkezik hotstringekkel is, amelyek a gyorsbillentyűkhöz hasonlóan működnek, kivéve a teljes szövegsor cseréjét. Ez hasonló az automatikus javítás működéséhez - valójában létezik egy automatikus javító szkript az AHK számára -, de támogat minden AHK műveletet.

A hotstring csak akkor illeszkedik a stringhez, ha pontosan be van írva. Automatikusan eltávolítja az egyező szöveget a hotstring helyett is, bár ez a viselkedés módosítható.

Műveletek

Az AHK művelete bármi, ami külső hatással van az operációs rendszerre. Az AHK-nak sok akciója van. Valamennyit nem tudjuk megmagyarázni, ezért válogatunk néhány hasznosat.

  • Bevitel küldése, legyen az szöveg vagy különféle gombnyomás.
  • Az egér mozgatása. Valójában az AHK-t néha tévesen jelölik meg a videojátékok csalószoftvereként, mivel az emberek teljesen működő aimbotokat készítettek vele.
  • Kattintson az egérre, az aktuális ablakhoz viszonyítva.
  • A párbeszédmenük megjelenítése űrlapokkal és beviteli mezőkkel kiegészítve.
  • Ablakok mozgatása, méretének beállítása, kinyitása és bezárása.
  • Zenél.
  • Írás a Windows rendszerleíró adatbázisba. Igen valóban.
  • A vágólap tartalmának módosítása.
  • Fájlok olvasása és írása. Végezhet fájlokat és futtathat műveleteket minden soron. Az AHK akár .ahk fájlokba is írhat, és módosíthatja saját kódját.

A legtöbb ilyen művelethez információorientált parancsok is társulnak. Írhat például a vágólapra, de megkaphatja a vágólap tartalmát is egy változóban való tároláshoz és a futtatásához, ha a vágólap megváltozik.

Összekötés vezérlőszerkezetekkel

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

Az #Ifirányelvek mellett hozzáférhet If a cselekvési blokkok belsejéhez is. AHK van For hurkok, zárójel blokkokat, Try és Catchnyilatkozatokat, és még sokan mások. A külső adatokhoz a műveletblokkon belül férhet hozzá, és változókban vagy objektumokban tárolhatja a későbbi felhasználáshoz. Megadhat egyedi funkciókat és címkéket. Valójában bármi, amit könnyedén megtehet egy másik programozási nyelven, valószínűleg megteheti az AHK-ban, egy kis fejfájással és a dokumentumok átnézésével.

Képzelje el például, hogy van egy unalmas, ismétlődő feladata, amely megköveteli, hogy kattintson több gombra egymás után, és várja meg a kiszolgáló válaszát, mielőtt végtelenül újra elvégezné. Ennek automatizálásához használhatja az AHK-t. Meg kell határoznia néhány hurkot az egér meghatározott helyekre mozgatásához, majd kattintson a gombra, majd lépjen a következő helyre és kattintson ismét. Dobjon be néhány várakozási utasítást, hogy ne törjön meg. Akár megpróbálhatja elolvasni a képpontok színét a képernyőn, hogy meghatározza, mi történik.

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