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.
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.
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 . exeVæ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 tilbageSkjul/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