Autohotkey

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 24. maj 2021; checks kræver 3 redigeringer .
autohotkey
Type Skriftsprog
Forfatter Chris Mallett [d] [1]
Udvikler AutoHotkey Foundation LLC [d] [1]
Skrevet i C++ [2]
Operativ system Microsoft Windows
Hardware platform Microsoft Windows
nyeste version
Læsbare filformater AHK-script [d]
Licens GNU GPL
Internet side autohotkey.com

AutoHotkey  er et frit distribueret sprog til automatisering af opgaver i Microsoft Windows .

AutoHotkey er et scriptsprog, der er tilpasset til nemt at tildele og omdanne genvejstaster , inklusive muse- og joystick -knapper . Scripts er tekstfiler med filtypenavnet ".ahk" . Pakken indeholder et værktøj , der giver dig mulighed for at "kompilere" dem til EXE-filer og køre på enhver computer med Windows OS, mens den oprettede fil kan indeholde andre filer, der udpakkes ved opstart.

AutoHotkey giver dig mulighed for at automatisere Windows -brugeropgaver på en måde, der ikke er mulig eller vanskelig i andre programmeringssprog. Derudover er dette sprog kompakt, selvstændigt og fungerer på alle versioner af Windows ud af æsken.

AutoHotkey kan bruges til at simulere tastatur-, mus- og joystickhandlinger, starte programmer, ændre deres grænseflade, administrere vinduer, filer og mapper, arbejde med udklipsholder og systemregistrering . Kommandoer kan kaldes med genvejstaster.

Det er også muligt at oprette en GUI , sende og modtage vinduesbeskeder, kalde DLL -funktioner , behandle tekst ved hjælp af regulære udtryk .

AutoHotkey opstod som en forgrening af AutoIt- projektet , da dets forfatter foreslog at bygge strammere genvejsunderstøttelse ind i AutoIt v2, men fandt ingen forståelse. Så forfatteren besluttede at udvikle sit eget sprog baseret på syntaksen i AutoIt v2 og ved at bruge nogle af funktionerne i AutoIt v3.

I øjeblikket er udviklingen af ​​den originale filial - AutoHotkey 1.0 (senere kaldet AutoHotkey Basic , Classic, Vanilla) - afbrudt af dens skaber Chris Mallett. Den officielle efterfølger - AutoHotkey 1.1 (AutoHotkey_L) - udviklet af en fællesskabsindsats ledet af Steve Gray (Lexikos) og fincs, denne version giver understøttelse af Unicode , 64 -bit arkitektur , arrays , prototypeobjekter samt COM- og ActiveX - kontroller i GUI'en.

En bruger med aliaset tinku99 har udviklet en brugerdefineret build af AutoHotkey_N, der giver dig mulighed for at integrere AutoHotkey- fortolkeren i et andet program eller sprog. Det giver AutoHotkey-funktionalitet, der kan være sværere at implementere på et andet sprog.

En bruger med aliaset HotKeyIt udgav næsten samtidig sin egen version af AutoHotkey_H baseret på AutoHotkey_N, udover at integrere via dll , kunne den også bruges via COM . Der var også et forsøg på at implementere kodebeskyttelse, hvilket blev opnået takket være kryptografi og anti-debugging-teknikker. Ifølge nogle rapporter observeres opstartsustabilitet på Windows 10 .

I øjeblikket har udviklingen af ​​den anden version stået på i flere år, den er i øjeblikket i alfa-version. Syntaks er blevet omstruktureret i denne version.

Om sproget

Sprogfunktioner omfatter:

AutoHotkey-tolken er lille og kræver ikke installation. Hovedfilen er nok til at fungere, og enhver teksteditor er nok til at oprette et script . For at køre uden en tolk skal scriptet først kompileres .

Der er en IDE for AutoHotkey kaldet SciTE4AutoHotkey baseret på den gratis SciTE editor . Compileren, hjælpeværktøjerne og referencematerialerne er fuldt integrerede, hvilket gør editoren til et standardmiljø for udviklere, der bruger AHK. AHK-kompileren og SciTE-udviklingsmiljøet er nemme at installere og kræver ikke yderligere konfiguration.

Ligesom andre scriptsprog er AutoHotkey et tredjegenerationssprog, der bruger de klassiske model- og varianttypevariabler til at gemme forskellige typer data , inklusive arrays.

Populære anvendelser af AutoHotkey:

For at forenkle udviklingen af ​​grafiske grænseflader er der en visuel editor SmartGUI Creator.

Kildekoden til AutoHotkey for alle C++ versioner er tilgængelig til download på GitHub.

Den aktuelle version af sproget er tilgængelig til download på projektets officielle hjemmeside, såvel som tidligere udgivelser.

Eksempler

Hello World-program:

; Viser et standardvindue med navnet "Eksempel", inskriptionen "Hej, verden!" og knappen OK. MsgBox , 0 , Eksempel , Hej verden ! _

Oprettelse af en dialogboks:

; Viser en dialogboks med knapperne Ja og Nej. Hvis du klikker på "Ja" - afslut programmet. MsgBox , 4 , Spørgsmål , Vil du afslutte programmet ? IfMsgBox , Ja Afslut app andet MsgBox , tak fordi du blev hos os .

Start notesblok:

Kør , notesblok . exe

Vækkeur i 12 timer og 00 minutter:

SetTimer , CheckTime , 300  ; Indstilling af timeren til etiketten en gang hvert 300 millisekund. returnere  ; Slut på afsnittet om automatisk udførelse. Scriptet holder pause, indtil etiketten udløses. kontroltid: if ( A_Time == 12 && A_Min == 00 )  ; Hvis tiden er inde. { Værktøjstip , Alarm .  ; Vi udsender en besked. Søvn , 3000  ; Vi venter 3 sekunder. Værktøjstip  ; Vi skjuler budskabet. } Vend tilbage

Skjul/vis markøren, når du trykker på Win + C.

; Skjuler/viser musemarkøren, når du trykker på Win + C-tasten. OnExit , ShowCursor  ; Når scriptet slutter, viser vi markøren. returnere  ; Slut på afsnittet om automatisk udførelse. Scriptet holder pause, indtil brugeren gør noget. ShowCursor: Systemmarkør ( "Til" ) Afslut app #c:: SystemCursor ( "Toggle" )  ; Når du trykker på Win + C, skal du vise/skjul markøren. SystemMarkør ( status := 1 ) { statisk AndMask , XorMask , $ , hMarkør , c0 , cl , c2 , c3 , c4 , c5 , c6 , c7 , c8 , c9 , c10 , c11 , c12 , c13  ; Systemmarkør. , b1 , b2 , b3 , b4 , b5 , b6 , b7 , b8 , b9 , b10 , b11 , b12 , b13  ; Tom markør. , h1 , h2 , h3 , h4 , h5 , h6 , h7 , h8 , h9 , h10 , h11 , h12 , h13  ; Markørhåndtag som standard. if ( status = "Init" eller status = "I" eller $ = "" )  ; Initialiseret ved første opkald. { $ = h  ; Aktiv markør som standard. VarSetCapacity ( hСursor , 4444 , 1 ) VarSetCapacity ( AndMask , 32 * 4 , 0xFF ) VarSetCapacity ( XorMask , 32 * 4 , 0 ) system_cursors = 32512 , 32513 , 32514 , 32515 , 32516 , 32642 , 32643 , 32644 , 32645 , 32646 , 32648 , 9 , 3 StringSplit c , system_cursors , `, Løkke %c0% { hСursor := DllCall ( "LoadCursor" , "Ptr" , 0 , "Ptr" , c %A_Index% ) h %A_Index% := DllCall ( "CopyImage" , "Ptr" , hCursor , "UInt" , 2 , "Int" , 0 , "Int" , 0 , "UInt" , 0 ) b %A_Index% := DllCall ( "CreateCursor" , "Ptr" , 0 , "Int" , 0 , "Int" , 0 , "Int" , 32 , "Int" , 32 , "Ptr" , & AndMask , " Ptr" , & XorMask ) } } if ( status = 0 eller status = "Fra" eller $ = "h" og ( status < 0 eller status = "Toggle" eller status = "T" ))) $ = b  ; Vi bruger en tom markør. andet $ = h  ; Vi bruger systemmarkøren. Løkke %c0% { hMarkør := DllCall ( "CopyImage" , "Ptr" , %$%%A_Index% , "UInt" , 2 , "Int" , 0 , "Int" , 0 , "UInt" , 0 ) DllCall ( "SetSystemCursor" , "Ptr" , hСursor , "UInt" , c %A_Index% ) } }

Eksempel script ved hjælp af GUI:

Gui , Tilføj , Tekst ,, Navn : Gui , Tilføj , Tekst ,, Efternavn : Gui , Tilføj , Rediger , vFornavn ym  ; ym-parameteren starter en ny kolonne med kontroller. GUI , Tilføj , Rediger , vEfternavn Gui , Tilføj , Knap , standard , OK  ; ButtonOK-etiketten (hvis den findes) udløses, når der klikkes på knappen. Gui , Vis ,, Simple Input Eksempel returnere  ; Slut på afsnittet om automatisk udførelse. Scriptet holder pause, indtil brugeren gør noget. Knap OK: GUI , Send  ; Gemmer brugerinput til den bundne variabel for hver kontrol. MsgBox Dit fornavn Efternavn : " %FirstName% %LastName%" . GuiClose:  ; Udløses, når grænsefladen er lukket. Afslut app

Se også

Noter

  1. 1 2 https://autohotkey.com/foundation/
  2. Autohotkey Open Source-projektet på Open Hub: Languages-side - 2006.
  3. Udgivelse 1.1.34.04 - 2022.

Links