AutoHotkey is een fantastisch maar gecompliceerd stuk software. Het was aanvankelijk bedoeld om aangepaste sneltoetsen opnieuw te koppelen aan verschillende acties, maar is nu een volledige Windows-automatiseringssuite.
AHK is niet bijzonder moeilijk te leren voor nieuwe gebruikers, aangezien het algemene concept vrij eenvoudig is, maar het een volledige Turing-complete programmeertaal is. Je zult de syntaxis veel gemakkelijker oppikken als je een programmeerachtergrond hebt of bekend bent met de concepten.
AutoHotkey installeren en gebruiken
Het installatieproces van AutoHotkey is eenvoudig. Download het installatieprogramma van de officiële website en voer het uit. Kies ‘Snelle installatie’. Nadat u de software heeft geïnstalleerd, kunt u met de rechtermuisknop ergens klikken en Nieuw> AutoHotkey-script selecteren om een nieuw script te maken.
AHK-scripts zijn tekstbestanden met de extensie .ahk
uitbreiding. Als u er met de rechtermuisknop op klikt, krijgt u een aantal opties:
- “Run Script” laadt uw script met de AHK-runtime.
- “Compile Script” zal het bundelen met een AHK-uitvoerbaar bestand om een EXE-bestand te maken dat u kunt uitvoeren.
- “Script bewerken” opent uw script in uw standaardteksteditor. U kunt Kladblok gebruiken om AHK-scripts te schrijven, maar we raden u aan SciTE4AutoHotkey te gebruiken, een editor voor AHK die syntaxisaccentuering en foutopsporing ondersteunt.
Terwijl een script wordt uitgevoerd, of het nu een EXE is of niet, wordt het op de achtergrond uitgevoerd in het systeemvak van Windows, ook wel het systeemvak genoemd. Zoek naar het groene pictogram met een “H” erop.
Om een script af te sluiten, te pauzeren, opnieuw te laden of te bewerken, klikt u met de rechtermuisknop op het meldingspictogram en selecteert u een geschikte optie. Scripts worden op de achtergrond uitgevoerd totdat u ze afsluit. Ze verdwijnen natuurlijk ook wanneer u zich afmeldt bij Windows of uw pc opnieuw opstart.
Hoe werkt AutoHotkey?
In wezen doet AHK één ding: acties binden aan sneltoetsen. Er zijn veel verschillende acties, sneltoetscombinaties en besturingsstructuren, maar alle scripts werken volgens hetzelfde principe. Hier is een standaard AHK-script dat Google Chrome start wanneer u op Windows + C drukt:
#c:: Run Chrome return
De eerste regel definieert een sneltoets. Het hekje (#) is een afkorting voor de Windows-toets en c
is de C-toets op het toetsenbord. Daarna is er een dubbele dubbele punt (: 🙂 om het begin van een actieblok aan te duiden.
De volgende regel is een actie. In dit geval start de actie een toepassing met de Run
opdracht. Het blok is afgewerkt met een return
op het eind. U kunt een onbeperkt aantal acties uitvoeren vóór het return
. Ze zullen allemaal opeenvolgend vuren.
Zo heb je een simpele key-to-action mapping gedefinieerd. U kunt er zoveel plaatsen als u wilt in een .ahk
bestand en stel het in om op de achtergrond te draaien, altijd op zoek naar sneltoetsen om opnieuw toe te wijzen.
Sneltoetsen en modificatoren
Je kunt een volledige lijst met AHK’s modifiers vinden in de officiële documentatie, maar we zullen ons concentreren op de meest bruikbare (en coole) functies.
Modificatietoetsen hebben allemaal steno van één teken. Bijvoorbeeld, # ! ^ +
zijn respectievelijk Windows, Alt, Control en Shift. U kunt ook onderscheid maken tussen linker en rechter Alt, Control en Shift met de <
en >
modificatoren, wat veel ruimte opent voor extra sneltoetsen. Bijvoorbeeld + is rechts Shift. Bekijk de sleutellijst voor alles waar u naar kunt verwijzen. (Spoiler: je kunt naar bijna elke toets verwijzen. Je kunt zelfs naar andere niet-toetsenbordinvoerapparaten verwijzen met een kleine extensie).
U kunt zoveel toetsen combineren als u wilt in één sneltoets, maar u zult al snel geen te onthouden toetscombinaties meer hebben. Dit is waar modifiers, waarmee je gekke dingen kunt doen, binnenkomen. Laten we een voorbeeld uit de AHK-documenten opsplitsen:
De groene #IfWinActive
heet een richtlijn, en past aanvullende context toe op sneltoetsen die er fysiek onder in het script staan. Elke sneltoets daarna wordt alleen geactiveerd als de voorwaarde waar is, en u kunt meerdere sneltoetsen onder één instructie groeperen. Deze richtlijn zal niet veranderen totdat u op een andere richtlijn klikt, maar u kunt deze opnieuw instellen met een spatie #If
(en als dat een hack lijkt, welkom bij AHK).
De instructie hier controleert of een specifiek venster open is, gedefinieerd door ahk_class Notepad
. Wanneer AHK de invoer “Win + C” ontvangt, wordt de actie onder de eerste geactiveerd #IfWinActive
alleen als de instructie true retourneert, en controleer dan de tweede als dat niet het geval is. AHK heeft veel richtlijnen en u kunt ze allemaal vinden in de documenten.
AutoHotkey heeft ook hotstrings, die als sneltoetsen werken, behalve dat ze een hele reeks tekst vervangen. Dit is vergelijkbaar met hoe autocorrectie werkt — in feite is er een autocorrectiescript voor AHK — maar ondersteunt elke AHK-actie.
De hotstring komt alleen overeen met de string als deze exact is getypt. Het zal automatisch de overeenkomende tekst verwijderen om ook de hotstring te vervangen, hoewel dit gedrag kan worden aangepast.
Acties
Een actie in AHK is alles dat een extern effect heeft op het besturingssysteem. AHK heeft veel acties. We kunnen ze onmogelijk allemaal uitleggen, dus we zullen een paar nuttige uitkiezen.
-
Invoer verzenden, of het nu gaat om tekst of het indrukken van verschillende knoppen.
-
De muis verplaatsen. In feite wordt AHK soms ten onrechte gemarkeerd als cheatsoftware voor videogames, omdat mensen er volledig functionerende aimbots mee hebben gemaakt.
-
Met de muis klikken, met positionering ten opzichte van het huidige venster.
-
Dialoogmenu’s weergeven, compleet met formulieren en invoervelden.
-
Vensters verplaatsen, de grootte aanpassen en openen en sluiten.
-
Muziek afspelen.
-
Schrijven naar het Windows-register. Ja werkelijk.
-
De inhoud van het klembord wijzigen.
-
Bestanden lezen en schrijven. U kunt bestanden doorlopen en acties op elke regel uitvoeren. AHK kan zelfs schrijven naar
.ahk
bestanden en pas zijn eigen code aan.
Aan de meeste van deze acties zijn ook informatiegerichte commando’s gekoppeld. U kunt bijvoorbeeld naar het klembord schrijven, maar u kunt ook de inhoud van het klembord in een variabele laten opslaan en functies uitvoeren wanneer het klembord verandert.
Alles koppelen met controlestructuren
AHK zou niet zijn wat het is zonder alle controlestructuren die het Turing-compleet maken.
Naast de #If
richtlijnen heeft u ook toegang tot If
binnenkant van actieblokken. AHK heeft For
lussen, accoladeblokken, Try
en Catch
verklaringen, en vele anderen. U kunt externe gegevens openen vanuit het actieblok en deze opslaan in variabelen of objecten om later te gebruiken. U kunt aangepaste functies en labels definiëren. Echt, alles wat je gemakkelijk in een andere programmeertaal zou kunnen doen, kun je waarschijnlijk in AHK doen met een beetje hoofdpijn en een kijkje in de documenten.
Stel je voor dat je een saaie, repetitieve taak hebt waarbij je op meerdere knoppen achter elkaar moet klikken en moet wachten tot een server reageert voordat je het oneindig opnieuw doet. U kunt AHK gebruiken om dit te automatiseren. U wilt een paar lussen definiëren om de muis naar specifieke locaties te verplaatsen, klik op en ga dan naar de volgende plek en klik nogmaals. Gooi een paar wachtverklaringen in om het niet te laten breken. U kunt zelfs proberen de kleur van pixels op het scherm te lezen om te bepalen wat er gebeurt.
Eén ding is zeker: je script zal waarschijnlijk niet mooi zijn. Maar AutoHotkey ook niet, en dat is oké.