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.
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.
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 . exeBudí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 seSkrý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