Verze 2.42 - (C)1999, 2000 Jonathan Bennett
(Email: jbennett@hidden.demon.co.uk)
Rychlý přehled příkazů
[AdlibOn] [AdlibOff] [BlockInput] [Break] [DetectHiddenText] [Exit] [EndRepeat] [EnvAdd] [EnvSub] [FileAppend] [FileReadLine] [Gosub] [Goto] [HideAutoItWin] [IfWinExist] [IfWinNotExist] [IfWinActive] [IfWinNotActive] [IfEqual] [IfNotEqual] [IfExist] [IfNotExist] [IfMsgBox] [IniRead] [IniWrite] [IniDelete] [InputBox] [LeftClick] [LeftClickDrag] [MouseGetPos] [MouseMove] [MsgBox] [RegRead] [RegWrite] [RegDelete] [Return] [RightClick] [RightClickDrag] [Run] [RunWait] [Repeat] [Send] [SetEnv] [SetKeyDelay] [SetTitleMatchMode] [SetWinDelay] [Shutdown] [Sleep] [SplashTextOn] [SplashTextOff] [WinGetActiveTitle] [WinKill] [WinWait] [WinWaitClose] [WinWaitActive] [WinWaitNotActive] [WinHide] [WinRestore] [WinShow] [WinMinimize] [WinMaximize] [WinActivate] [WinClose] [WinMinimizeAll] [WinMove] [WinSetTitle]
1. Úvod
2. Účel použití
3. Licence
7. Aut2Exe - Konverze skriptu do .exe
10. Proměnné DOSu
13. Příkazy skriptu
15. Část [ADLIB]
16. Příklady
17. Historie AutoIt
18. Soupis přání
19. Poděkování ...
AutoIt je nástroj k automatizaci kterýchkoli jednoduchých úloh ve Windows a v DOSu. Původně byl určen k podpoře automatického nainstalování programů, které se nemohou instalovat bez dalších prostředků. To je nejvíce využitelné v situacích, kdy je třeba samočinně nainstalovat stovky či tisíce klientských počítačů. Mnoho programů, jako MS Office, Mcafee, IE4 atd. nabízí svou vlastní automatickou instalaci. Avšak většina softwaru žádnou takovouto možnost nemá. Právě tehdy přichází ke slovu AutoIt. AutoIt může též zautomatizovat některé malé úlohy na vašem počítači.
Když spustíte AutoIt, program si načte vámi specifikovaný soubor skriptu. Tento soubor umožňuje AutoIt vykonávat velké množství funkcí, které obsahují:
Je zkrátka nejlepší ze všech, je malý (samotný .exe soubor, žádné DLL knihovny, žádné zásahy do registru) a ZADARMO! (a zůstane zadarmo).
Nově od verze 2.1 je navíc program Aut2Exe. Tento program vytvoří samostatně spustitelný soubor z AutoIt skriptu.
Nově od verze 2.21 můžete nyní navíc posílat decimální ASCII kódy, podobně jako při použití klávesy ALT a numerické klávesnice (např. ALT+65='A'). Tato funkce je využitelná pro poslání znaků, které obvykle činí potíže (např. '~' na italské klávesnici).
Stále potřebné jsou ne-anglické verze tohoto dokumentu! (V jakémkoliv formátu, pokud jste ochotni pomoct.) - Právě vzniklé překlady si můžete zajistit na domovské stránce AutoIt.
Tento program je vyvinut pro provádění jednoduchých automatizovaných úloh ve Windows. Není určený jako kompletní skriptovací jazyk. Pro provádění složitých úloh (manipulace s registry, analýza textového souboru, složité cykly, atd.) Vám doporučuji používat AutoIt ve spojení s některým kompletním skriptovacím jazykem (jako WSH or Kixtart - oba volně šířitelné) a používat AutoIt pro "vyplnění mezer". Současné moto AutoIt je "If it can't be done on a single line - it's probably too complicated" (volně přeloženo: Pokud to nemůže být uděláno na jedné řádce - je to pravděpodobně příliž složité). Tento přístup se dosud vyplácel a pomáhá udržovat velikost samotného programu na nízkých hodnotách (je to malinký program!).
Já osobně používám AutoIt k obšírným konfiguracím počítačů. Používám Kixtart/WSH záložní procesor ke kopírování a spouštění souborů, editování registrů a potom ke spuštění AutoIt, když potřebuju provádět konfigurace, které nevyžadují ruční vkládání (instalace softwaru, konfigurování ovládacích panelů, změna písmen diskových jednotek atd.)
Prohlédněte si prosím soubor License.txt přiložený v tomto archivu.
U programu AutoIt podle mínění autora nedochází k žádným komplikacím v souvislosti s rokem 2000.
Obecné zásady
Parametry jsou ukázány ve lomených závorkách, volitelné
parametry v hranatých závorkách.
např.
<příkaz>, <parametr1> [,<parametr2>]
Tohle je příkaz, následovaný čárkou a
parametrem1, popřípadně následovaný čárkou a
parametrem2.
tzn.
<příkaz>, <parameter1>
NEBO
<příkaz>, <parameter1>, <parameter2>
AutoIt může být spuštěn z příkazového řádku, nebo poklepáním na jeho ikonu v Průzkumníku Windows.
>>> Všimněte si: JEDINÝ soubor potřebný ke spuštění AutoIt je "AutoIt2.exe", umístěním tohoto souboru do cesty (PATH) na jakémkoliv počítači vám umožní spouštět AutoIt skripty z příkazové řádky (níže). <<<
Syntaxe z příkazové řádky
AutoIt lze spustit z příkazového řádku následujícími dvěma způsoby (ujistěte se, že AutoIt2.exe je umístěn v cestě (PATH), nebo že spouštíte příkazy z adresáře, kde je nainstalován):
AutoIt2.exe /reveal
NEBO
AutoIt2.exe <název souboru skriptu>
Reveal mód
Když spustíte "reveal" mód, zůstane okno AutoIt vždy navrchu. Zaktivujete-li jiná okna, AutoIt zobrazí jejich názvy, pozici kurzoru myši (souřadnice, vztahující se k tomu oknu), a jakýkoliv další text v tom okně, který by mohl pomoci odlišit jej od ostatních oken stejného názvu. Stejně jako u MS ScriptIt "nevidí" AutoIt všechen text, který je v okně - experimentujte!
Informace v okně AutoIt reveal módu mohou být označeny myší a zkopírovány do schránky pomocí "CTRL-C", poté mohou být vloženy do jiného programu / textového editoru.
Scriptovací mód
AutoIt spustí skript, jehož název souboru zadáte v příkazovém řádku. Tento soubor může mít libovolnou koncovku (pokud používáte běžný instalační postup, zaregistruje se automaticky extence .aut, což vám umožní snadno spouštět nebo editovat skript).
Používání parametrů příkazové řádky
Parametry mohou být předány AutoIt skriptu z příkazové řádky pomocí následující syntaxe:
AutoIt2.exe <název souboru skriptu> /p param1 param2 param3........param3
Tyto parametry jsou potom ve skriptu dostupné jako ENV proměnné %1%, %2%, %3%, atd.
Pokud má parametr obsahovat mezery, dejte ho celý do uvozovek, např.:
AutoIt2.exe pokus.aut /p "D:\Dlouhý název souboru" pok2
%1% se rovná D:\Dlouhý název souboru
%2% se rovná pok2
Aut2Exe - Konverze skriptů do .exe
Aut2Exe může být nainstalován společně s AutoIt (pouze v plné instalaci). Tento program načte AutoIt skript a převede jej na spustitelný program. Výsledný exe soubor může být poté spouštěn bez nainstalovaného AutoIt. Je též možné přidělit mu ikonu, která však musí být ve formátu ICO, tj. 32x32 obr. bodů a 16 barev (soubor má mít velikost 766 bytů).
Zdrojový kód skriptu je viditelný ke konci exe souboru, ale je zakódován pro ochranu před zvědavými osobami! (Kódování není zas tak složité, ale zabrání většíně "rádoby- hackerů", aby získali přístup k vaším skriptům. Já vím, že bych nebyl schopen to cracknout, ale potom nejsem žádný expert... :) ).
V budoucnu by mohla přibýt možnost rozkódování vámi zaheslovaných skriptů (zatím nemažte vaše originální skripty!! ;) ).
Stále můžete zadávat parametry z příkazové řádky spuštěním "mujskript.exe /p param1 param2.....".
Syntaxe
skriptu
Soubor skriptu je standardní textový soubor, kterému může být
přidělena jakákoliv koncovka (ovšem koncovka .aut
je preferovaná). Každý řádek může obsahovat buď příkaz,
komentář, jméno návěští, nebo může být ponechán prázdný.
POZOR: Maximální počet znaků na řádku je 1024. Jakékoliv další znaky budou ignorovány.
; Začátek skriptu
; Komentáře jsou označeny středníkem na začátku
<Příkaz>, <Parametry příkazu>
<Příkaz2>, <Parametry příkazu 2>
<Příkaz3>, <Parametry příkazu 3>
; Toto je návěští, jeho název musí končit dvojtečkou (:)
a je používáno pro příkazy typu Gosub a Goto.
label:
; Konec skriptu
Exit
; Začátek sekce ADLIB
[ADLIB]
<Název>, <Text>, <Příkaz>, <Parametry příkazu>
Obrácené lomítko '\', čárka ',' a procento '%' jsou brány jako speciální znaky, a musíte dávat pozor při jejich použití.
',' se používá pro oddělení parametrů ve skriptu.
'%' se používá k označení proměnné DOSu.
Pokud si přejete použít tyto znaky doslovně, musí jim předcházet znak lomítka '\', např. "\," nebo "\%". Pokud chcete doslovně použít '\', musíte na to jít stejným způsobem, tz. "\\".
Výrazy "\n" a "\t" lze použít k udání nových řádků (enterů) a tabulátorů ve "výstupních" funkcích AutoIt příkazů MsgBox a InputBox.
Názvy
oken a jejich text
Mnohé příkazy skriptu mají parametry "Název
okna" a "Text okna".
"Název okna" je text, který je
zobrazován v titulním pruhu okna.
"Text okna" je jakýkoliv text v tom
okně, popř. text tlačítek jako "OK" či "Zrušit".
Definování "Textu okna" vám pomůže odlišit od
sebe okna se stejnými názvy.
Ani název ani text nemusí být plně specifikovány.
např. "Bez názvu - Po" bude
souhlasit s oknem "Bez názvu - Poznámkový blok".
Podívejte se na text u příkazu SetTitleMatchMode pro další
informace.
Použijte funkci "/reveal"
k odhalení textu v okně.
POZOR: Názvy oken a jejich text jsou citlivé
na rozlišování VELKÝCH A MALÝCH PÍSMEN!!!!!
Zpět na Obsah
Proměnné
DOSovského prostředí
Kdekoliv v AutoIt skriptu můžete používat proměnné DOSu.
Podobně jako v DOSovských dávkových (batch-) souborech stačí
vložit název proměnné do procent (%).
Pokud chcete třeba vložit obsah aktuální DOSovské cesty (PATH)
do poznámkového bloku, můžete to učinit takto:
Run, notepad.exe
WinWaitActive, Bez názvu - Poznámkový blok
Send, Toto je DOSovská cesta %PATH%
např. Tento příklad nastaví proměnnou test a poté ji
ukáže v textovém rámečku.
SetEnv, test, Toto je nějaký výstup
MsgBox, 0, Ukázka, %test%
POZOR: Pokud chcete použít znak procenta aniž by byl chápán
jako proměnná, musíte před něj vzhledem k tomuto speciálnímu
stavu napsat znak lomítka '\'.
např.
Send, Tohle pošle znak procenta: \%
Můžete též použít příkaz "SetEnv"
k nastavení proměnných, ale tyto změny
nebudou z DOSu viditelné - hodnoty budou platné pouze pro tento
skript.
POZOR: Mnohé AutoIt skripty hlásí, že očekávají název
proměnné jako parametr, v tomto případě se symbol % nepoužívá.
Hodně ukázkových skriptů přiložených k AutoIt to předvádí.
Zpět na Obsah
Proměnná
schránky
Proměnná %CLIPBOARD% je speciální, a když je použita,
bude nahrazena textem uloženým ve schránce. Pokud například
zkopírujete text "Haló!" do schránky a potom
spustíte následující skript:
MsgBox, 0, Příklad, Ve shcránce je: %clipboard%
Výstupem skriptu bude text "Ve schránce je: Haló!".
Obdobně, chcete-li odeslat text do schránky, můžete tak učinit pomocí příkazu SetEnv. Např. k zkopírování textu "Já jsem vložený text" do schránky můžete spustit:
SetEnv, clipboard, Já jsem vložený text
Speciální
proměnné
Existuje množství speciálních proměnných v AutoIt, které
jsou popsány níže:
AutoIt porměnná | obsahuje |
A_OSTYPE | Typ operačního systému, který právě běží. Buď "WIN32_WINDOWS" nebo "WIN32_NT". |
A_SCRIPTNAME | Název tohoto (běžícího) skriptu, např. "mujskript.aut". |
A_SCRIPTDIR | Adresář, ve kterém je skript umístěn. |
A_SCRIPTFULLPATH | Plný název cesty a souboru skriptu, např. "C:\Windows\Scripts\myscript.aut". |
A_WORKINGDIR | Současný pracovní adresář. |
A_SEC | Vteřiny (za minutou) (00-59) |
A_MIN | Minuty (za hodinou) (00-59) |
A_HOUR | Hodiny (po půlnoci) (00-23) |
A_MDAY | Den v měsíci (01-31) |
A_MON | Měsíc v roce (01-12) |
A_YEAR | Současný rok (4-číslicový formát, např. 2000) |
A_WDAY | Den v týdnu (1-7) |
A_YDAY | Den v roce (1-366) |
Příkazy
skriptu
Následující příkazy jsou současně rozpoznávány (příkazy
nejsou citlivé na velká a malá písmena):
AdlibOn
AdlibOff
BlockInput, <on | off> (on=zapnuto;
off=vypnuto - pozn. překl.)
Break, <on | off>
DetectHiddenText, <on | off>
Exit
EndRepeat
Gosub, <label (návěští)>
EnvAdd, <proměnná>, <hodnota>
EnvSub, <proměnná>, <hodnota>
FileAppend, <text>, <název
souboru>
FileReadLine, <proměnná>, <název
souboru>, <řádek>
Goto, <návěští>
HideAutoItWin, <on | off>
IfWinExist, <název okna>, [<text
okna>], <příkaz>
IfWinNotExist, <název okna>, [<text okna>], <příkaz>
IfWinActive, <název okna>, [<text okna>], <příkaz>
IfWinNotActive, <název okna>, [<text okna>], <příkaz>
IfEqual, <proměnná>, <text>, <příkaz>
IfNotEqual, <proměnná>, <text>, <příkaz>
IfExist, <soubor nebo adresář>, <příkaz>
IfNotExist, <soubor nebo adresář>, <příkaz>
IfMsgBox, <vrácená hodnota>, <příkaz>
IniRead, <proměnná>, <název
souboru>, <část>, <klíč>
IniWrite, <hodnota>, <název
souboru>, <část>, <klíč>
IniDelete, <název
souboru>, <část>, <klíč>
InputBox, <proměnná>, <název>, <zpráva>
LeftClick, <x>, <y>
LeftClickDrag, <x1>, <y1>,
<x2>, <y2>
MouseGetPos, <x proměnná>, <y proměnná>
MouseMove, <x pozice>, <y
pozice>
MsgBox, <mód zobrazení>, <název>, <zpráva>
RegRead, <proměnná>, <typ hodnoty>, <klíč registru>,
<podklíč registru>, <název hodnoty>
RegWrite, <typ hodnoty>, <klíč
registru>, <podklíč registru>, <název hodnoty>,
<hodnota>
RegDelete, <klíč registru>, <podklíč
registru>, <název hodnoty>
Repeat, <počet>
Return
RightClick, <x>, <y>
RightClickDrag, <x1>, <y1>,
<x2>, <y2>
Run, <cesta a název programu> [,<pracovní
adresář>]
RunWait, <cesta a název
programu> [,<pracovní
adresář>]
Send, <série stisků kláves>
SetEnv, <proměnná>, <hodnota>
SetKeyDelay, <milisekundy>
SetTitleMatchMode, <mód>
SetWinDelay, <milisekundy>
Shutdown, <vlajka>
Sleep, <milisekundy>
SplashTextOn, <šířka>, <výška>,
<název>,
<zpráva>
SplashTextOff
WinGetActiveTitle, <proměnná>
WinKill, <název
okna> [,<text
okna>]
WinWait, <název
okna> [,<text
okna>]
WinWaitClose, <název okna> [,<text okna>]
WinWaitActive, <název okna> [,<text okna>]
WinWaitNotActive, <název okna>
[,<text okna>]
WinHide, <název
okna> [,<text
okna>]
WinRestore, <název okna> [,<text okna>]
WinShow, <název okna> [,<text okna>]
WinMinimize, <název
okna> [,<text
okna>]
WinMaximize, <název okna> [,<text okna>]
WinActivate, <název okna> [,<text okna>]
WinClose, <název okna> [,<text okna>]
WinMinimizeAll
WinMove, <název
okna>, [<text
okna>], <X>, <Y>, <šířka>,
<výška>
WinSetTitle, <název
okna>, [<text okna>],
<nový název>
Syntaxe jednotlivých příkazů je popsána níže.
Zpět na Obsah
AdlibOn
AdlibOff
Tento příkaz zapne / vypne zpracování sekce [ADLIB].
BlockInput, <on | off>
Tento příkaz zablokuje uživateli vstup z klávesnice i myši. To funguje různě v závislosti na verzi operačního systému, jak je popsáno níže:
Operační systém | výsledek použití "BlockInput" |
Windows 95 | nemá efekt |
Windows 98 | Uživatelský vstup je blokován, ale AutoIt jej též nemůže simulovat. |
Windows NT 4 (bez ServicePack 6) | nemá efekt |
Windows NT 4 (se ServicePack 6) | Uživatelský vstup je blokován a AutoIt jej může simulovat. |
Windows 2000 | Uživatelský vstup je blokován a AutoIt jej může simulovat. |
Vstup se automaticky obnoví po skončení běhu skriptu.
Break, <on | off>
Tento příkaz sdělí AutoIt, jestli jej může uživatel zavřít,
nebo ne. Původní nastavení je "on" - zapnuto (uživatel
může zavřít AutoIt)
např.
Break, On
DetectHiddenText,
<on | off>
Některé programy používají skrytá okna a skrytý text v
oknech (např. Backup Exec), to může způsobit potíže při
pokusu o skriptování. Tento příkaz sdělí AutoIt, jestli má
detekovat skrytý text, nebo ne. Implicitně je tato funkce
vypnuta ("off").
Exit
Tento příkaz ukončí běh skriptu.
EnvAdd, <proměnná>,
<hodnota>
EnvSub, <proměnná>, <hodnota>
Dovolí vám přičítat a odečítat hodnoty proměnných. Pokud
není proměnná nebo hodnota číslo, bud brána jako nula (0).
např.
SetEnv, test, 20
EnvAdd, test, 20
MsgBox, 0, Příklad, %test%
Toto napíše na obrazovku "40".
FileAppend, <text>, <název souboru>
Tento příkaz připojí "text" na konec souboru. Pokud soubor neexistuje, bud založen.
např.
FileAppend, Tohle je řádek 1\nTohle je řádek 2\n, mujsoubor.txt
Připojí dva řádky textu do "mujsoubor.txt"; berte na vědomí, že pro indikaci začátku nového řádku je třeba vložit znaky "\n".
Pokud proběhne příkaz úspěšně, %ERRORLEVEL% se nastaví na 0, jinak bude nastaven na 1.
FileReadLine, <proměnná>, <název souboru>, <řádek>
Tento příkaz načte řádek z textového souboru do proměnné. Řádek 1 je brán jako první řádek.
např.
FileReadLine, test, myfile.txt, 1
Načte první řádek souboru "myfile.txt" do proměnné
%test%.
Pokud proběhne příkaz úspěšně, %ERRORLEVEL% se nastaví na 0, jinak bude nastaven na 1.
Gosub,<návěští>
Return
Stejné jako staré příkazy BASICu.. Gosub skočí na
specifikované návěští. Return se vrátí na řádek za příkazem
Gosub.
např.
SetEnv, Message, Toto je první zpráva!
Gosub, mysubroutine
SetEnv, Message, Toto je druhá zpráva!
Gosub, mysubroutine
SetEnv, Message, Toto je třetí zpráva!
Gosub, mysubroutine
Exit
mysubroutine:
MsgBox, 0, AutoIt, %Message%
Return
Goto, <návěští>
Spouštění skriptu bude pokračovat na následujícím návěští.
např.
; Tento skript se zacyklí navždy
loop:
Sleep, 10
Goto, loop
HideAutoItWin,
<on | off>
Tento příkaz může být použit ke kompletnímu skrytí okna
AutoIt před uživatelem. To je použitelné především pro
"tiché" instalace.
např.
HideAutoItWin, On
IfWinExist, <název
okna>, [<text okna>], <příkaz>
IfWinNotExist ,<název okna>, [<text okna>], <příkaz>
IfWinActive, <název okna>, [<text okna>], <příkaz>
IfWinNotActive, <název okna>, [<text okna>], <příkaz>
Pokud je podmínka splněna (tj. název okna a text existuje, je
aktivní, neexistuje, je neaktivní), spustí se <příkaz>.
POZOR: Pokud není zadán žádný text okna, MUSÍTE vložit
čárku navíc.
např.
IfWinExist, název okna, text okna, Goto, label1
IfWinExist, název okna,, Goto, label1
IfEqual,<proměnná>,<text>,
<příkaz>
IfNotEqual,<proměnná>, <text>, <příkaz>
Porovná proměnnou DOSu <proměnná> s textem <text>
a podle výsledku pokračuje.
např.
InputBox, MujVar, AutoIt, Prosím napiš slovo: NASHLEDANOU
IfEqual, MujVar, NASHLEDANOU, Goto, match
MsgBox, 0, AutoIt, Nenapsal jsi to správně!
Exit
match:
MsgBox, 0, AutoIt, Dobře! Napsal jsi správné slovo!
IfExist,<soubor
nebo adresář>,<příkaz>
IfNotExist,<soubor nebo adresář>,<příkaz>
Způsobí, že skript spustí <příkaz> pokud daný soubor
/ adresář existuje / neexistuje.
např.
IfExist, C:\\COMMAND.COM, Goto, fileexist
Exit
fileexist:
; Skript se dostane na toto místo, pokud C:\COMMAND.COM EXISTUJE.
MsgBox, 0, AutoIt, Soubor existuje.
IfMsgBox, <vrácená
hodnota>, <příkaz>
Použijte tento příkaz pro spuštění příkazu v závislosti
na volbě, které tlačítko uživatel stisknul v příkazu
MsgBox. Platné vrácené hodnoty z příkazu MsgBox jsou:
ABORT, CANCEL, IGNORE, NO, OK, RETRY, YES
např. Chcete zobrazit dialog s tlačítky OK a CANCEL a poté
pokračovat, pokud uživatel zvolí CANCEL (CANCEL=zrušit - pozn.
překl.):
; Ukázkový skript
MsgBox, 1, AutoIt, Tohle je zkušební zpráva
IfMsgBox, CANCEL, Goto, cancellabel
Exit
cancellabel:
; Pokud se skript dostane sem, uživatel stisknul "zrušit"
MsgBox, 0, AutoIt, Uživatel stisknul "zrušit"
IniRead, <proměnná>, <název
souboru>, <část>, <klíč>
IniWrite, <hodnota>, <název souboru>, <část>,
<klíč>
IniDelete, <název souboru>, <část>, <klíč>
Povolí čtení a zápis standardních windowsovských .ini
souborů - souborů následujícího formátu:
[název sekce]
název klíče=hodnota
např. Načtení hodnoty "mujklic" z části "moje_cast"
ini souboru do proměnné "%vysledek%":
IniRead, vysledek, c:\\mypath\\myfile.ini,
moje_cast, mujklic
např. Napsání textu "ahoj" do stejné části a
klíče:
IniWrite, ahoj, c:\\mypath\\myfile.ini,
moje_cast, mujklic
např. Zapsání informace cesty (PATH) DOSu do stejné sekce
a klíče:
IniWrite, %path%, c:\\mypath\\myfile.ini,
moje_cast, mujklic
např. Vymazání informace cesty (PATH) DOSu ze stejné části
a klíče:
IniDelete, c:\\mypath\\myfile.ini,
moje_cast, mujklic
Upozornění: Musí být zadána kompletní cesta a název .ini
souboru.
InputBox,<proměnná>,
<název>, <zpráva> [,hide]
Zobrazí dialogový box s textem <zpráva>. Uživatel může
zadat text a poté stisknout OK, a tím se zadaný text uloží
do proměnné DOSu <proměnná>. Pokud je přidán
parametr "hide", vstup bude maskován (např. u zadávání
hesel).
např.
InputBox, MyMessage, AutoIt, Napiš něco!
MsgBox, 0, AutoIt, %MyMessage%
např.
InputBox, password, AutoIt, Vlož své hoeslo (text je skrytý),
hide
LeftClick, <x>,
<y>
RightClick, <x>, <y>
Simuluje stisk levého nebo pravého tlačítka myši. Souřadnice
X a Y jsou určovány vzhledem k aktivnímu oknu. Spousťte
AutoIt reveal mód ke zjištění požadovaných souřadnic v okně.
K provedení dvojtého kliknutí (poklepání) jednoduše proveďte
příkaz dvakrát za sebou :)
LeftClickDrag,
<x1>, <y1>, <x2>, <y2>
RightClickDrag, <x1>, <y1>, <x2>, <y2>
Táhne ukazatel myši z místa x1,y1 na místo x2,y2 se stisknutým
příslušným tlačítkem. Souřadnice jsou určovány
vzhledem k aktivnímu oknu.
MouseGetPos, <x proměnná>,
<y proměnná>
Tento příkaz umístí kurzor myši na pozici 'x' a 'y' proměnných.
Souřadnice jsou určovány vzhledem k aktivnímu oknu.
např.
MouseGetPos, xpos, ypos
MsgBox, 0, Pokus, Pozice myši je %xpos% %ypos%
MouseMove, <x pozice>, <y
pozice>
Tento příkaz posune myš na pozici <x pozice>, <y
pozice>. Souřadnice jsou určovány vzhledem k aktivnímu
oknu.
MsgBox, <mód
zobrazení>, <název>, <zpráva>
Zobrazí dialogový box s určitým textem. Různé zobraovací módy
mají za příčinu různé vlastnosti (vzhled, počet tlačítek).
Seznam módů je níže, sečtěte si čísla módů, které
chcete použít.
např. Zobrazit "Ahoj" s pouze tlačítkem "OK":
MsgBox, 0, AutoIt, Ahoj
např. Zobrazit "Ahoj" s vykřičníkem a tlačítky OK
a Zrušit:
MsgBox, 49, AutoIt, Ahoj
(1=OKCANCEL, 48=Vykřičník, = 49)
Function | AutoIt Value |
MB_OK | 0 |
MB_OKCANCEL | 1 |
MB_ABORTRETRYIGNORE | 2 |
MB_YESNOCANCEL | 3 |
MB_YESNO | 4 |
MB_RETRYCANCEL | 5 |
MB_ICONHAND | 16 |
MB_ICONQUESTION | 32 |
MB_ICONEXCLAMATION | 48 |
MB_ICONASTERISK | 64 |
MB_APPLMODAL | 0 |
MB_SYSTEMMODAL | 4096 |
MB_TASKMODAL | 8192 |
RegRead, proměnná,
typ hodnoty, klíč registru, podklíč registru, název hodnoty
Tento příkaz vám umožní číst hodnoty registru REG_SZ a REG_DWORD. Pokud
proběhne příkaz úspěšně, %ERRORLEVEL% se nastaví na 0,
jinak bude nastaven na 1.
Klíč registru musí být buď "HKEY_LOCAL_MACHINE",
"HKEY_CURRENT_USER", "HKEY_USERS", "HKEY_CURRENT_CONFIG"
nebo "HKEY_CLASSES_ROOT".
Typ hodnoty musí být "REG_DWORD" nebo "REG_SZ".
např. Načtení umístění "Program Files" adresáře
do proměnné "TestKey":
RegRead, TestKey, REG_SZ, HKEY_LOCAL_MACHINE, Software\\Microsoft\\Windows\\CurrentVersion,
ProgramFilesDir
MsgBox, 0, Ukázka, Program Files se nachází v %TestKey%
RegWrite, typ
hodnoty, klíč registru, podklíč registru, název hodnoty,
hodnota
Podobné příkazu RegRead, tento příkaz vám dovolí vytvoří
či změnit klíč registru. Pokud proběhne příkaz úspěšně,
%ERRORLEVEL% se nastaví na 0, jinak bude nastaven na 1.
např. Změna obrázku pozadí nynějšího uživatele:
RegWrite, REG_SZ, HKEY_CURRENT_USER, Control Panel\\Desktop,
Wallpaper, C:\\Mujsexyobrazek.bmp
RegDelete, klíč
registru, podklíč registru, název hodnoty
Tento příkaz vymaže hodnotu registru. Pokud proběhne příkaz
úspěšně, %ERRORLEVEL% se nastaví na 0, jinak bude
nastaven na 1.
např. Výmaz hodnoty obrázku pozadí nynějšího uživatele
(ne příliš doporučeno :) ):
RegDelete, HKEY_CURRENT_USER, Control Panel\\Desktop, Wallpaper
Run, <název programu a cesta>
[,<pracovní adresář> [,<max | min | hide>]]
Spustí daný program a pokračuje na další řádce skriptu.
POZOR: Pogram ke spuštění a pracovní adresář jsou odděleny
čárkou ','. Určení pracovního adresáře není povinné.
>>>>> POZOR: Protože '\' je
speciální znak, musíte použít '\\' při specifikaci cest!
<<<<<
např.
Run, notepad.exe, C:\\WINDOWS
Run, C:\\Program Files\\Microsoft Office\\Office\\WinWord.exe
První příkaz spustí poznámkový blok a nastaví pracovní
adresář na "C:\WINDOWS".
Druhý příkaz spustí MS Word v aktuálním adresáři.
Můžete též spustit příkazy příkazového interpreteru Echo,
Copy, atd.
např.
Run, COMMAND.COM /C Echo Hello > C:\\Hello.txt
NEBO
Run, %COMSPEC% /C Echo Hello > C:\\Hello.txt
Vytvoří soubor nazvaný C:\Hello.txt obsahující slovo "Hello".
RunWait, <název programu a
cesta> [,<pracovní adresář> [,<max | min | hide>]]
Stejné jako příkaz Run, ale počká, než se program ukončí
před pokračováním (doporučeno při spouštění příkazů
DOSu jako copy, md, del, atd.).
Tento příkaz též nastaví proměnnou %ERRORLEVEL% podle zpětného kódu programu.
Repeat, <počet>
EndRepeat
Opakuje část skriptu do místa "EndRepeat", kolikrát
je uvedeno v parametru <počet>. Pokud je v <počet>
nula, bude cyklus nekonečný. Příkazy opakování mohou být i
vnořené.
např.
Repeat, 10
MsgBox, 0, Pokus, Toto se zobrazí 10krát!
EndRepeat
Send, <série stisků
kláves>
Pošle sadu stisků kláves do zrovna aktivního okna. (Syntaxe těchto
kláves najdete v následující části).
např.
Send, Toto je řádka textu#{ENTER}
SetEnv, <proměnná>,
<hodnota>
Tento příkaz nastaví hodnotu určité proměnné.
POZOR: Tato proměnná exituje pouze v rámci AutoIt, není přístupná
z DOSu.
např. Nastavení proměnné "CHYBA" na "Vyskytla
se chyba":
SetEnv, CHYBA, Vyskytla se chyba.
K použití obsahu proměnné užijte symbol procenta:
např. Po spuštění předchozího příkazu tohle zobrazí
"Vyskytla se chyba":
MsgBox, 1, AutoIt, %CHYBA%
SetKeyDelay,
<milisekundy>
Změní prodlevu mezi stisky kláves v milisekundách. Maximální
hodnota je 32767.
Implicitně je 20ms. 1000 milisekund = 1 sekunda.
SetTitleMatchMode,
<mód>
Změní způsob snímání názvů oken.
Platné módy jsou "1" a "2" - implicitní je
"1". Tato funkce ovlivňuje většinu příkazů AutoIt,
které mají název okna, popř. jeho text v parametru, např.
WinWait, WinWaitActive, IfWinActive, atd.
např.
; Script užívá mód 1 (implicitní)
SetTitleMatchMode, 1
; Script užívá mód 2
SetTitleMatchMode, 2
mode 1
Ve skriptu stačí specifikovat začátek názvu okna, aby se
shodoval. Např. pro okno notepad.exe (Bez názvu - Poznámkový
blok) jsou platné shody:
"Bez", "Bez názvu -", "Bez názvu -
Poznámkový blok" a "Bez názvu - Poznám".
mode 2
Aby došlo ke shodě, stačí zadat KTEROUKOLIV část z názvu
okna. Opět pro okno notepad.exe by platilo:
"Bez", "Bez názvu - Poznámkový blok",
"blok", "Poz".
SetWinDelay,
<milisekundy>
Tohle změní dobu, kdy AutoIt zastaví po provedení funkce
vztahující se k oknu (čekání na okno, minimalizace, obnovení,
atd.) než se bude pokračovat. To najde využití zvlášť na
hodně pomalých počítačích, nebo pokud používáte věci
jako animaci oken. Implicitní je 500 milisekund.
např.
SetWinDelay, 2000
Run, Notepad.exe
WinWaitActive, Bez názvu - Poznámkový blok
Send, Ahoj
V tomto příkladě by došlo od startu poznámkového bloku k 2
vteřinové pauze, než by se objevilo slovo "Ahoj".
Shutdown, <vlajka>
Tento příkaz vám umožní různé formy vypnutí systému. Typ
je určen <vlajkou>. Vlajka může být kombinace z tabulky
dole:
Funkce |
Vlajka |
Odhásit uživatele | 0 |
Vypnout systém | 1 |
Restartovat počítač | 2 |
Donutit aplikace, aby se ukončily (může dojít ke ztrátě neuložených dat) | 4 |
Vypnout počítač (pokud je to podporováno) | 8 |
např. K vypnutí počítače a donucení všech aplikací,
aby se ukončily, = 1 + 4 = 5:
Shutdown, 5
Sleep, <milisekundy>
Zastaví běh skriptu po dobu, zadanou v milisekundách. Maximum
je 32767.
1000 milisekund = 1 sekunda.
SplashTextOn,
<šířka>, <výška>, <název>, <zpráva>
Tento příkaz zobrazí okno s určitou zprávou a názvem. Okno
stojí zcela navrchu. Použitelné pro automatizaci, když chcete
například zobrazit zprávu "Nesahat!", aby uživatel
neovlivňoval běh skriptu např. aktivací jiných oken.
SplashTextOff
Odstraní z obrazovky okno se zprávou.
WinGetActiveTitle,
<proměnná>
Tento příkaz přečte název aktivního okna a uloží ho do
proměnné DOSu <proměnná>
např.
Sleep, 2000
WinGetActiveTitle, myvar
MsgBox, 0, AutoIt, Aktuální okno bylo %myvar%
WinKill, <název okna> [,<text
okna>]
Podobné příkazu WinClose, ale pokud se okno nezavře po
uplynutí několika sekund (dotaz na uložení, zhroucení, atd.),
bude k tomu donuceno.
WinWait, <název
okna> [,<text okna> [,<časový limit>]]
Zastaví běh skriptu, dokud se neobjeví dané okno. Okno nemusí
být aktivní.
Pokud je specifikován časový limit v sekundách - Po spuštění
příkazu se nastaví proměnná %ERRORLEVEL% na 0, pokud
byl příkaz proveden v pořádku, nebo na 1 došlo-li k
uplynutí časového limitu. Maximální délka časového
limitu je 32767 sekund.
např. Čekej stále na okno poznámkového bloku
WinWait, Bez názvu - Poznámkový blok
např. Čekej 5 vteřin na okno poznámkového bloku
WinWait, Bez názvu - Poznámkový blok,, 5
WinWaitClose,
<název okna> [,<text okna> [,<časový limit>]]
Zastaví skript, dokud se nezavře příslušné okno.
Pokud je specifikován časový limit v sekundách - Po spuštění
příkazu se nastaví proměnná %ERRORLEVEL% na 0, pokud
byl příkaz proveden v pořádku, nebo na 1 došlo-li k
uplynutí časového limitu. Maximální délka časového
limitu je 32767 sekund.
např.
WinWaitClose, Bez názvu - Poznámkový blok
WinWaitActive,
<název okna> [,<text okna> [,<časový limit>]]
Zastaví skript, dokud se neobjeví dané okno a nebude aktivní.
Pokud je specifikován časový limit v sekundách - Po spuštění
příkazu se nastaví proměnná %ERRORLEVEL% na 0, pokud
byl příkaz proveden v pořádku, nebo na 1 došlo-li k
uplynutí časového limitu. Maximální délka časového
limitu je 32767 sekund.
WinWaitNotActive,
<název okna> [,<text okna> [,<časový limit>]]
Zastaví běh skriptu, dokud příslušné okno nepřestane být
aktivní.
Pokud je specifikován časový limit v sekundách - Po spuštění
příkazu se nastaví proměnná %ERRORLEVEL% na 0, pokud
byl příkaz proveden v pořádku, nebo na 1 došlo-li k
uplynutí časového limitu. Maximální délka časového
limitu je 32767 sekund.
WinHide, <název
okna> [,<text okna>]
WinShow, <název okna> [,<text okna>]
WinRestore, <název okna> [,<text okna>]
WinMinimize, <název okna> [,<text okna>]
WinMaximize, <název okna> [,<text okna>]
WinActivate, <název okna> [,<text okna>]
WinClose, <název okna> [,<text okna>]
Pokud dané okno existuje, bude vykonán příslušný příkaz (např.
minimalizace, skrytí, aktivování atd.).
WinMove, <název
okna>, [<text okna>], <X>, <Y>, <šířka>,
<výška>
Pokud existuje okno s daným názvem a textem, bude přesunuto na
<X>, <Y> a změněna jeho velikost na <šířka>,
<výška>
např.
Run, notepad.exe
WinWaitActive, Bez názvu - Poznámkový blok
WinMove, Bez názvu - Poznámkový blok,, 0, 0, 100, 100
Tohle přesune okno poznámkového bloku na 0,0 a změní jeho
velikost na 100,100
Nezapomeňte vložit čárku, pokud neupřesňujete text okna. Můžete
též použít parametr "default", chcete-li zachovat
aktuální rozměry okna. window
např.
WinMove, Bez názvu - Poznámkový blok,, 0, 0, default, default
WinSetTitle,
<název okna>, [text okna], <nový název>
Použijte tento příkaz pro přejmenování okna
např.
Run, notepad.exe
WinWaitActive, Bez názvu - Poznámkový blok
WinSetTitle, Bez názvu - Poznámkový blok,, Přejmenovaný poznámkový
blok!
WinMinimizeAll
Jednoduché, příkaz zminimalizuje všechna okna.
Syntaxe příkazu
"Send"
Syntaxe příkazu "Send" je podobná příkazu "SendKeys"
ve Visual Basicu. Znaky jsou vyslány stejně, jako jsou napsané
až na následující výjimky:
'!'
Tento znak sdělí AutoIt, aby vyslal klávesu ALT, takže "Send,Tohle
je text!a" by poslalo klávesy "Tohle je text" a
poté stisklo "ALT+a".
POZOR: Některé programy jsou velmi vybíravé, co se velkých a
malých písmen a ALTu týče, např. "!A" je něco jiného
než "!a". První výraz znamená ALT+SHIFT+A, druhý
ALT+a. Pokud si nejste jistí, použijte malé písmeno!
'+'
Tento znak sdělí AutoIt, aby vyslal klávesu SHIFT, takže
"Send,Aho+j" by vyslalo text "AhoJ". "Send,
!+a" by vyslalo "ALT+SHIFT+a".
'^'
Tento znak sdělí AutoIt, aby vyslal klávesu CONTROL, takže
"Send,^!a" potom vyšle "CTRL+ALT+a".
POZOR: Některé programy jsou velmi vybíravé, co se velkých a
malých písmen a klávesy CTRL týče, např. "^A" je
něco jiného než "^a". První výraz znamená CTRL+SHIFT+A,
druhý CTRL+a. Pokud si nejste jistí, použijte malé písmeno!
'#'
Křížek je používán pro oddělování jednotlivých kláves,
aby se řádky lépe četly. např. "Send, H#e#l#l#o"
je to samé jako "Send,Hello".
Některé speciální klávesy mohou být vyslány, ale měly by
být dány do závorek:
POZOR: Systém Windows nedovoluje simulovat stisk klávesové
kombinace "CTRL-ALT-DEL"!
příkaz Send | výsledné stisky kláves |
{!} | ! |
{#} | # |
{+} | + |
{^} | ^ |
{{} | { |
{}} | } |
{SPACE} | MEZERA |
{ENTER} | ENTER |
{ALT} | ALT |
{BACKSPACE} or {BS} | BACKSPACE |
{DELETE} or {DEL} | DELETE |
{UP} | Šipka nahoru |
{DOWN} | Šipka dolů |
{LEFT} | Šipka doleva |
{RIGHT} | Šipka doprava |
{HOME} | HOME |
{END} | END |
{ESCAPE} or {ESC} | ESCAPE |
{INSERT} or {INS} | INS |
{PGUP} | PGUP |
{PGDN} | PGDN |
{F1} - {F12} | Funkční klávesy |
{TAB} | TAB |
{PRINTSCREEN} | PRINTSCR |
{LWIN} | Levá klávesa Windows |
{RWIN} | Pravá klávesa Windows |
{NUMLOCK} | NUMLOCK |
{CTRLBREAK} | Ctrl+break |
{PAUSE} | PAUSE |
{CAPSLOCK} | CAPSLOCK |
{NUMPAD0} - {NUMPAD 9} | Čísla na numerickém bloku klávesnice |
{NUMPADMULT} | Hvězdička na numerickém bloku klávesnice |
{NUMPADADD} | Plus na numerickém bloku klávesnice |
{NUMPADSUB} | Mínus na numerickém bloku klávesnice |
{NUMPADDIV} | Lomítko na numerickém bloku klávesnice |
{NUMPADDOT} | Tečka na numerickém bloku klávesnice |
{APPSKEY} | Kontextová nabídka WIndows (obdoba Shift+F10) |
{ALTDOWN} | Drží ALT, dokud nepošlete {ALTUP} |
{SHIFTDOWN} | Drží SHIFT, dokud nepošlete {SHIFTUP} |
{CTRLDOWN} | Drží CTRL, dokud nepošlete {CTRLUP} |
{ASC nnnn} | Vyšle ALT+nnnn číselnou kombinaci |
Vyslání ASCII hodnoty A (totožné se stisknutím ALT+65 na
numerické klávesnici)
Send, {ASC 65}
Jednotlivé stisky kláves se mohou též opakovat, např.
Send, {DEL 4} Stiskne 4krát kláves DEL
Send, {S 30} Vyšle 30krát písmeno 'S'
Send, +{TAB 4} Stiskne 4krát SHIFT+TAB
Zpět na Obsah
Část [ADLIB]
Sekce [ADLIB] je volitelná, pokud se ji rozhodnete použít, měla
by být umístěna na konci skriptu. Část ADLIB by se měla
vypořádat s nečekanými podmínkami, které mohou nastat. Skládá
se z jednořádkových příkazů, které zjišťují, zda je
okno aktivní, a pokud ano, tak do něj např. pošlou určité
klávesy.
Sekce ADLIB musí začínat řádkem "[ADLIB]".
Formát toho jednoho řádku v ADLIBu je:
<název okna>,<text okna>,<příkaz>
např.
Run,Notepad.exe
WinWaitActive,Bez názvu - Poznámkový blok
Send,12345678#!{F4}
WinWaitClose,Bez názvu - Poznámkový blok
[ADLIB]
Poznámkový blok, Chcete změny uložit?, Send, !n
Bez použití ADLIBu by skript nikdy neukončil Poznámkový blok,
aniž by někdo zareagoval na dotaz "Chcete uložit změny?".
Příkazy ADLIBu musí obsahovat název okna a nějaký text v něm.
Pokud v okně není žádný text, nebo jej nechcete specifikovat,
musíte použít dvě čárky.
např.
Run,Notepad.exe
WinWaitActive,Bez názvu - Poznámkový blok
Send,12345678#!{F4}
WinWaitClose,Bez názvu - Poznámkový blok
[ADLIB]
Poznámkový blok,, Send, !n
Zpět na Obsah
Některé anglické příklady jsou přiloženy v tomto archivu, jiné naleznete na domovské stránce AutoIt .
17/6/2000 - v2.42
11/02/2000 - v2.41
09/02/2000 - v2.4
20/12/99 - v2.32
12/12/99 - v2.31
10/12/99 - v2.3
25/11/99 - v2.23
23/11/99 - v2.22
20/11/99 - v2.21
18/11/99 - v2.2
16/09/99 - v2.11
11/09/99 - v2.1
28/08/99 - v2.03
26/08/99 - v2.02
18/08/99 - v2.01
16/08/99 - v2.0
POZOR. Některé změny způsobily, že staré AutoIt skripty je třeba jemně upravit. - Prosím přečtěte si znovu dokumentaci, pokud přecházíte na novou verzi! Omluvte skok z v1.8 na v2.0 - tyto věci potřebovaly jednoduše změnit kvůli přidání dalších požadovaných příkazů. Já osobně používám v1.8 pro staré skripty a v2.0 pro kterékoliv nové skripty, které vytvořím.
02/04/99 - v1.8
14/03/99 - v1.7
28/02/99 - v1.6
20/02/99 - v1.5
20/01/99 - v1.4
18/01/99 - v1.3
14/01/99 - v1.2
12/01/99 - v1.1
12/01/99 - v1.0
Zde jsou některé aktuální nedokončené nápady, pokud máte jakékoliv další, prosím pošlete mi je.