Autohotkey

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 24. května 2021; kontroly vyžadují 3 úpravy .
autohotkey
Typ Skriptovací jazyk
Autor Chris Mallett [d] [1]
Vývojář AutoHotkey Foundation LLC [d] [1]
Zapsáno v C++ [2]
Operační systém Microsoft Windows
Hardwarová platforma Microsoft Windows
Nejnovější verze
Čitelné formáty souborů AHK skript [d]
Licence GNU GPL
webová stránka autohotkey.com

AutoHotkey  je volně distribuovaný jazyk pro automatizaci úloh v Microsoft Windows .

AutoHotkey je skriptovací jazyk přizpůsobený pro snadné přiřazování a přemapování klávesových zkratek , včetně tlačítek myši a joysticku . Skripty jsou textové soubory s příponou ".ahk" . Balíček obsahuje nástroj , který vám umožňuje „kompilovat“ je do souborů EXE a spustit na jakémkoli počítači s OS Windows, přičemž vytvořený soubor může obsahovat další soubory, které se extrahují při spuštění.

AutoHotkey umožňuje automatizovat uživatelské úlohy Windows způsobem, který není možný nebo obtížný v jiných programovacích jazycích. Tento jazyk je navíc kompaktní, samostatný a funguje na všech verzích Windows hned po vybalení.

AutoHotkey lze použít k simulaci akcí klávesnice, myši a joysticku, spouštění programů, změně jejich rozhraní, správě oken, souborů a složek, práci se schránkou a systémovým registrem . Příkazy lze volat pomocí klávesových zkratek.

Je také možné vytvořit GUI , odesílat a přijímat zprávy v okně, volat funkce DLL , zpracovávat text pomocí regulárních výrazů .

AutoHotkey vznikl jako fork projektu AutoIt , kdy jeho autor navrhl zabudovat do AutoIt v2 užší podporu hotkey, ale nenašel pochopení. Autor se tedy rozhodl vyvinout svůj vlastní jazyk založený na syntaxi AutoIt v2 a s využitím některých funkcí AutoIt v3.

V současné době je vývoj původní větve - AutoHotkey 1.0 (později nazvané AutoHotkey Basic , Classic, Vanilla) - ukončen jejím tvůrcem Chrisem Mallettem. Oficiální nástupce - AutoHotkey 1.1 (AutoHotkey_L) - vyvinutý komunitním úsilím vedeným Stevem Grayem (Lexikos) a fincs, tato verze poskytuje podporu pro Unicode , 64bitovou architekturu , pole , prototypové objekty a také ovládací prvky COM a ActiveX v GUI.

Uživatel s aliasem tinku99 vyvinul vlastní sestavení AutoHotkey_N, které vám umožňuje vložit interpret AutoHotkey do jiné aplikace nebo jazyka. Poskytuje funkci AutoHotkey, kterou může být obtížnější implementovat v jiném jazyce.

Uživatel s aliasem HotKeyIt téměř ve stejnou dobu vydal svou vlastní verzi AutoHotkey_H založenou na AutoHotkey_N, kromě integrace přes dll ji bylo možné použít také přes COM . Došlo také k pokusu o implementaci ochrany kódu, které bylo dosaženo díky kryptografii a technikám proti ladění. Podle některých zpráv je na Windows 10 pozorována nestabilita spouštění .

V současné době již několik let probíhá vývoj druhé verze, aktuálně je v alfa verzi. Syntaxe byla v této verzi přepracována.

O jazyce

Mezi jazykové vlastnosti patří:

Interpret AutoHotkey je malý a nevyžaduje instalaci. K práci stačí hlavní soubor a k vytvoření skriptu stačí libovolný textový editor . Aby bylo možné skript spustit bez interpretru, musí být nejprve zkompilován .

Existuje IDE pro AutoHotkey s názvem SciTE4AutoHotkey založené na bezplatném editoru SciTE . Kompilátor, obslužné nástroje a referenční materiály jsou plně integrovány, díky čemuž je editor standardním prostředím pro vývojáře používající AHK. Kompilátor AHK a vývojové prostředí SciTE se snadno instalují a nevyžadují další konfiguraci.

Stejně jako ostatní skriptovací jazyky je AutoHotkey jazykem třetí generace , který používá klasické proměnné modelu a varianty typu k ukládání různých typů dat , včetně polí.

Populární použití AutoHotkey:

Pro zjednodušení vývoje grafických rozhraní je k dispozici vizuální editor SmartGUI Creator.

Zdrojový kód AutoHotkey pro všechny verze C++ je k dispozici ke stažení na GitHubu.

Aktuální verze jazyka je k dispozici ke stažení na oficiálních stránkách projektu, stejně jako předchozí verze.

Příklady

Program Ahoj světe:

; Zobrazí standardní okno s názvem "Příklad", nápisem "Hello, world!" a tlačítko OK. MsgBox , 0 , Příklad , Ahoj světe ! _

Vytvoření dialogového okna:

; Zobrazí dialogové okno s tlačítky Ano a Ne. Pokud kliknete na "Ano" - ukončete program. MsgBox , 4 , Otázka , Chcete ukončit program ? _ IfMsgBox , Ano Ukončete aplikaci jiný MsgBox , děkujeme , že jste s námi zůstali .

Spustit poznámkový blok:

Běh , poznámkový blok . exe

Budík na 12 hodin a 00 minut:

SetTimer , CheckTime , 300  ; Nastavení časovače na štítek jednou za 300 milisekund. vrátit se  ; Konec sekce automatického provádění. Skript se pozastaví, dokud se štítek nespustí. čas kontroly: if ( A_Hour == 12 && A_Min == 00 )  ; Pokud nadešel čas. { ToolTip , Alarm .  ; Vydáváme zprávu. Spánek , 3000  ; Čekáme 3 sekundy. Nástroj Tip  ; Skryjeme zprávu. } vrátit se

Skrýt/Zobrazit kurzor při stisknutí Win + C.

; Skryje/zobrazí kurzor myši, když stisknete klávesu Win + C. OnExit , ShowCursor  ; Když skript skončí, ukážeme kurzor. vrátit se  ; Konec sekce automatického provádění. Skript se pozastaví, dokud uživatel něco neprovede. Zobrazit kurzor: SystemCursor ( "Zapnuto" ) Ukončete aplikaci #c:: SystemCursor ( "Přepnout" )  ; Když stisknete Win + C, zobrazte / skryjte kurzor. SystemCursor ( stav := 1 ) { statická AndMask , XorMask , $ , hCursor c0 , c1 , c2 , c3 , c4 , c5 , c6 , c7 , c8 , c9 , c10 , c11 , c12 , c13  ; _ Systémový kurzor. b1 , b2 , b3 , b4 , b5 , b6 , b7 , b8 , b9 , b10 , b11 , b12 , b13  ; _ Prázdný kurzor. , h1 , h2 , h3 , h4 , h5 , h6 , h7 , h8 , h9 , h10 , h11 , h12 , h13  ; Ve výchozím nastavení úchyty kurzoru. if ( status = "Init" nebo status = "I" nebo $ = "" )  ; Inicializováno při prvním hovoru. { $ = h  ; Ve výchozím nastavení aktivní kurzor. 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 , 503 _ _ StringSplit c , system_cursors , `, Smyčka %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 " a XorMask ) } } if ( stav = 0 nebo stav = "Vypnuto" nebo $ = "h" a ( stav < 0 nebo stav = "Přepnout" nebo stav = "T" ))) $ = b  ; Použijeme prázdný kurzor. jiný $ = h  ; Používáme systémový kurzor. Smyčka %c0% { hCursor := DllCall ( "CopyImage" , "Ptr" , %$%%A_Index% , "UInt" , 2 , "Int" , 0 , "Int" , 0 , "UInt" , 0 ) DllCall ( "SetSystemCursor" , "Ptr" , hСursor , "UInt" , c %A_Index% ) } }

Příklad skriptu pomocí GUI:

Gui , Add , Text ,, Name : Gui , Přidat , Text ,, Příjmení : Gui , Add , Edit , vFirstName ym  ; Parametr ym spustí nový sloupec ovládacích prvků. GUI , Přidat , Upravit , vLastName Gui , Add , Button , default , OK  ; Štítek ButtonOK (pokud existuje) se spustí po kliknutí na tlačítko. Gui , Show ,, Příklad jednoduchého vstupu vrátit se  ; Konec sekce automatického provádění. Skript se pozastaví, dokud uživatel něco neprovede. TlačítkoOK: GUI , Odeslat  ; Uloží uživatelský vstup do vázané proměnné každého ovládacího prvku. MsgBox Vaše křestní jméno Příjmení : "%FirstName% %LastName%" . GuiClose:  ; Spustí se při zavření rozhraní. Ukončete aplikaci

Viz také

Poznámky

  1. 1 2 https://autohotkey.com/foundation/
  2. Autohotkey Open Source Project na Open Hub: Stránka jazyků - 2006.
  3. Vydání 1.1.34.04 – 2022.

Odkazy