Hvordan skrive et AutoHotkey-skript

Autohurtigtast er en fantastisk, men komplisert programvare. Det var opprinnelig ment å binde tilpassede hurtigtaster til forskjellige handlinger, men er nå en full Windows-automatiseringspakke.

AHK er ikke spesielt vanskelig å lære for nye brukere, siden det generelle konseptet er ganske enkelt, men det er et fullt, Turing-komplett programmeringsspråk. Du vil finne syntaksen mye lettere hvis du har programmeringsbakgrunn eller er kjent med konseptene.

Installere og bruke AutoHotkey

AutoHotkeys installasjonsprosess er enkel. Last ned installatør fra den offisielle nettsiden og kjør den. Velg «Ekspressinstallasjon.» Etter at du har installert programvaren, kan du høyreklikke hvor som helst og velge New > AutoHotkey Script for å lage et nytt skript.

AHK-skript er tekstfiler med filtypen .ahk. Hvis du høyreklikker på dem, får du noen alternativer:

«Kjør skript» vil laste skriptet ditt med AHK-kjøretiden.
«Compile Script» vil samle det med en AHK-kjørbar for å lage en EXE-fil du kan kjøre.
«Rediger skript» vil åpne skriptet ditt i standard tekstredigeringsprogram. Du kan bruke Notepad til å skrive AHK-skript, men vi anbefaler å bruke SciTE4AutoHotkeyen editor for AHK som støtter syntaksutheving og feilsøking.

Mens et skript kjører – enten det er en EXE eller ikke – vil du finne det kjører i bakgrunnen i Windows systemstatusfeltet, også kjent som systemstatusfeltet. Se etter det grønne ikonet med en «H» på.

For å avslutte, sette på pause, laste inn på nytt eller redigere et skript, høyreklikk på varslingsikonet og velg et passende alternativ. Skript vil fortsette å kjøre i bakgrunnen til du avslutter dem. De forsvinner også når du logger av Windows eller starter PC-en på nytt, selvfølgelig.

  Fix Zoom kan ikke oppdage et kamera

Hvordan fungerer AutoHotkey?

I kjernen gjør AHK én ting – binde handlinger til hurtigtaster. Det er mange forskjellige handlinger, hurtigtastkombinasjoner og kontrollstrukturer, men alle skript vil operere på samme prinsipp. Her er et grunnleggende AHK-skript som starter Google Chrome hver gang du trykker på Windows+C:

#c::
Run Chrome
return

Den første linjen definerer en hurtigtast. Pundtegnet (#) er en forkortelse for Windows-tasten og c er C-tasten på tastaturet. Etter det er det et dobbelt kolon (::) for å angi starten på en handlingsblokk.

Den neste linjen er en handling. I dette tilfellet starter handlingen et program med Kjør-kommandoen. Blokken avsluttes med retur i enden. Du kan ha et hvilket som helst antall handlinger før returen. De vil alle skyte sekvensielt.

Akkurat som det har du definert en enkel nøkkel-til-handling-kartlegging. Du kan plassere så mange av disse du vil i en .ahk-fil og sette den til å kjøre i bakgrunnen, alltid på utkikk etter hurtigtaster som kan tilordnes på nytt.

Hurtigtaster og modifikatorer

Du kan finne en fullstendig liste over AHKs modifikatorer i offisiell dokumentasjonmen vi vil fokusere på de mest nyttige (og kule) funksjonene.

Modifikatortaster har alle stenografier med ett tegn. For eksempel, # ! ^ + er henholdsvis Windows, Alt, Control og Shift. Du kan også skille mellom venstre og høyre Alt, Control og Shift med modifikatorene, som åpner for mye plass for ekstra hurtigtaster. For eksempel er + høyre Shift. Ta en titt på nøkkelliste for alt du kan referere til. (Spoiler: Du kan referere til nesten hver eneste tast. Du kan til og med referere til andre ikke-tastaturinndataenheter med en liten utvidelse).

Du kan kombinere så mange taster du vil til én hurtigtast, men du vil snart gå tom for tastekombinasjoner å huske. Det er her modifikatorer, som lar deg gjøre galere ting, kommer inn. La oss bryte ned et eksempel fra AHK-dokumentene:

  Hvordan fikse japansk tastatur-IME som ikke fungerer (fullstendig veiledning)

Den grønne #IfWinActive kalles et direktiv, og bruker tilleggskontekst til hurtigtaster fysisk under den i skriptet. Enhver hurtigtast etter den vil bare utløses hvis betingelsen er sann, og du kan gruppere flere hurtigtaster under ett direktiv. Dette direktivet vil ikke endres før du treffer et annet direktiv, men du kan tilbakestille det med en tom #If (og hvis det virker som et hack, velkommen til AHK).

Direktivet her sjekker om et spesifikt vindu er åpent, definert av ahk_class Notepad. Når AHK mottar inngangen «Win+C», vil den utløse handlingen under den første #IfWinActive bare hvis direktivet returnerte sant, og deretter sjekke det andre hvis det ikke gjorde det. AHK har mange direktiver, og du kan finne dem alle i dokumentene.

AutoHotkey har også hotstrings, som fungerer som hurtigtaster bortsett fra å erstatte en hel tekststreng. Dette ligner på hvordan autokorrektur fungerer – det er faktisk en autokorrektur skript for AHK – men støtter alle AHK-handlinger.

Hotstringen vil matche strengen bare hvis den er skrevet nøyaktig. Den vil automatisk fjerne den samsvarende teksten for å erstatte hotstringen også, selv om denne oppførselen kan justeres.

Handlinger

En handling i AHK er alt som har en ytre effekt på operativsystemet. AHK har mange aksjoner. Vi kan umulig forklare dem alle, så vi plukker ut noen nyttige.

Sender innspillenten det er tekst eller diverse knappetrykk.
Flytte musen rundt. Faktisk blir AHK noen ganger feilaktig flagget som jukseprogramvare for videospill, siden folk har laget fullt fungerende aimbots med den.
Klikker med musenmed plassering i forhold til gjeldende vindu.
Viser dialogmenyerkomplett med skjemaer og inndatafelt.
Flytte rundt vinduerjustering av størrelse og åpning og lukking.
Spiller musikk.
Skrive til Windows-registeret. Ja virkelig.
Endre innholdet på utklippstavlen.
Lese og skrive filer. Du kan gå gjennom filer og kjøre handlinger på hver linje. AHK kan til og med skrive til .ahk-filer og justere sin egen kode.

  Hvordan vise kart offline

De fleste av disse handlingene vil også ha informasjonsorienterte kommandoer knyttet til seg. Du kan for eksempel skrive til utklippstavlen, men du kan også få innholdet i utklippstavlen til å lagre i en variabel og kjøre funksjoner når utklippstavlen endres.

Koble det hele sammen med kontrollstrukturer

AHK ville ikke vært hva det er uten alle kontrollstrukturene som gjør det Turing-komplett.

I tillegg til #If-direktivene har du også tilgang til Hvis innsiden av handlingsblokker. AHK har Til løkker, krøllete tannregulering blokker, Prøve og Catch-uttalelser og mange andre. Du kan få tilgang til eksterne data fra handlingsblokken og lagre dem i variabler eller gjenstander å bruke senere. Du kan definere tilpassede funksjoner og etiketter. Egentlig, alt du enkelt kan gjøre på et annet programmeringsspråk kan du sannsynligvis gjøre i AHK med litt hodepine og en titt gjennom dokumentene.

Tenk deg for eksempel at du har en kjedelig, repeterende oppgave som krever at du klikker på flere knapper på rad og venter på at en server svarer før du gjør det om igjen i det uendelige. Du kan bruke AHK til å automatisere dette. Du ønsker å definere noen få løkker for å flytte musen til bestemte steder, klikk og flytt deretter til neste sted og klikk igjen. Legg inn noen venteerklæringer for at den ikke skal gå i stykker. Du kan til og med prøve les fargen på piksler på skjermen for å finne ut hva som skjer.

En ting er sikkert – manuset ditt vil sannsynligvis ikke være pent. Men det er heller ikke AutoHotkey, og det er greit.