AutoIt

'X'

Verze 1.32 - (C)1999 Jonathan Bennett

(Email: jbennett@hidden.demon.co.uk)

Domovská stránka AutoIt

Překlad: Tomáš Valůšek, 2000

Přehled příkazů

[ ClipGet ] [ ClipPut ] [ DetectHiddenText ] [ IfWinActive ] [ IfWinExist ] [ IniRead ] [ IniWrite ] [ LeftClick ] [ LeftClickDrag ] [ MouseGetPosX ] [ MouseGetPosY ] [ MouseMove ] [ RightClick ] [ RightClickDrag ] [ Send ] [ Shutdown ] [ Sleep ] [ SetKeyDelay ] [ SetTitleMatchMode ] [ SetWinDelay ] [ WinKill ] [ WinWait ] [ WinWaitClose ] [ WinWaitActive ] [ WinWaitNotActive ] [ WinHide ] [ WinShow ] [ WinRestore ] [ WinMinimize ] [ WinMaximize ] [ WinActivate ] [ WinClose ] [ WinMinimizeAll ] [ WinMove ] [ WinSetTitle ] [ WinGetActiveTitle ]

Obsah

1. Úvod

2. Zamýšlené využití

3. Licenční ujednání

4. AutoItX a rok 2000

5. Použití AutoItX

6. Titulek okna a Text okna

7. Metody AutoItX

8. Syntaxe metody Send

9. Příklady

10. Historie AutoItX

Úvod

AutoItX je ovládací prvek ActiveX odvozený od AutoIt. Zpřístupňuje vám následující funkce:

To nejlepší nakonec - je malý a je ZADARMO!

Všechny příklady jsou ve VBScriptu (WSH), ale budou pracovat pod libovolným jazykemzpřístupňujícím ActiveX objekty.

Back to Contents

Zamýšlené využití

AutoItX je zamýšlen pro využití s jinými skriptovacími jazyky (WSH, VBScript apod.) k "vyplnění mezer" zabudované podpory automatizace. Nechcete-li užívat jiný skriptovací jazyk, můžete zkusit plnou verzi AutoIt s vlastním .exe souborem a skriptovacím jazykem.

Návrat k Obsahu

Licenční ujednání

Viz soubor License.txt obsažený v tomto archivu.

Návrat k Obsahu

AutoItX a rok 2000

AutoItX nepoužívá funkce zpracování data a proto je dle nejlepšího vědomí autora plně slučitelný s rokem 2000. Nicméně odkazuji na licenci.

Návrat k Obsahu

Použití AutoIt X

AutoItX je ovládací prvek ActiveX, proto musí být na klientském stroji registrován utilitou "regsvr32.exe". Poté lze k němu přistupovat z libovolného skriptu (všechny dodávané příklady jsou ve VBScriptu). (Poznámka: Pokud jste při instalaci plné verze AutoIt zvolili instalaci AutoItX, objekt by už měl být zaregistrován.)

Vytvořit objekt AutoItX lze následujícím (nebo podobným) řádkem kódu; jméno třídy je AutoItX.Control :

Set oAutoIt = CreateObject("AutoItX.Control")

Návrat k Obsahu

Titulek a Text okna

Řada metod používá "Titulek okna" a "Text okna" jako parametry.
"Titulek okna" je text objevující se v titulkové liště okna.
"Text okna" je jakýkoli další text v daném okně, např. text na tlačítkách jako "OK" a "Storno".

Dostupnost "Textu okna" umožňuje rozlišit více oken se stejným titulkem.

Není nutná úplná specifikace titulku nebo textu okna.
Např. "Bez názvu - Po" bude odpovídat titulku okna "Bez názvu - Poznámkový blok" .
Další informace naleznete v popisu metody SetTitleMatchMode.

Ke zjištění titulku a textu okna použijte "informační" režim plné verze AutoIt.

Poznámka. Titulek a text okna jsou CITLIVÉ NA VELIKOST PÍSMEN!!!!!

Návrat k Obsahu

Metody AutoItX

V současnosti jsou implementovány následující metody.

Parametry jsou uvedeny v lomených "< >" závorkách, nepovinné parametry pak v závorkách hranatých "[ ]" :

ClipGet
ClipPut <Text>

DetectHiddenText  <on | off>
IfWinActive <Titulek okna>, <Text okna>
IfWinExist <Titulek okna>, <Text okna>
IniRead <Jméno souboru>, <Sekce>, <Klíč>
IniWrite <Jméno souboru>, <Sekce>, <Klíč>, <Hodnota>

LeftClick  <x>, <y>
LeftClickDrag, <x1>, <y1>, <x2>, <y2>
MouseGetPosX
MouseGetPosY
MouseMove <x>, <y>
RightClick  <x>, <y>
RightClickDrag, <x1>, <y1>, <x2>, <y2>
Send  <Série stisků kláves>
Shutdown <Příznak>
Sleep  <milisekundy>
SetKeyDelay  <milisekundy>
SetTitleMatchMode  <režim>
SetWinDelay  <milisekundy>
WinKill <Titulek okna>, <Text okna>
WinWait <Titulek okna>, <Text okna> [,<Prodleva>]
WinWaitClose <Titulek okna> ,<Text okna> [,<Prodleva>]
WinWaitActive <Titulek okna> ,<Text okna> [,<Timeout>]
WinWaitNotActive <Titulek okna> ,<Text okna> [,<Prodleva>]
WinHide <Titulek okna> ,<Text okna>
WinShow <Titulek okna> ,<Text okna>
WinRestore <Titulek okna> ,<Text okna>
WinMinimize <Titulek okna> ,<Text okna>
WinMaximize <Titulek okna> ,<Text okna>
WinActivate <Titulek okna> ,<Text okna>
WinClose <Titulek okna> ,<Text okna>

WinMinimizeAll
WinMove <Titulek okna> ,<Text okna>, <X>, <Y>, <Šířka>, <Výška>
WinSetTitle <Titulek okna> ,<Text okna>, <Nový titulek>
WinGetActiveTitle

Syntaxe těchto metod je podána níže: The syntax of these methods are given below:

Návrat k Obsahu

Send <Série stisků kláves>

Odešle sérii stisků kláves do právě aktivního okna (Syntaxe stisků kláves viz další sekce).

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.Send "Ahoj, toto je řádek textu"


WinWait <Titulek okna> ,<Text okna> [,<Prodleva>]

Skupina metod WinWait (WinWait, WinWaitActive atd.) nyní obsahuje parametr Prodleva. Je to volitelný parametr a je-li uveden, funkce skončí nejpozději po <Prodleva> sekundách bez ohledu na úspěšnost funkce. Pokut funkce uspěla, vrátí 0 , skončila-li po prodlevě, vrátí 1 . Maximální hodnota Prodlevy je 32767 sekund.

Zastavíprovádění skriptu do doby, než začne existovat zadané okno, které nemusí být aktivní.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.WinWait "Bez názvu - Poznámkový blok", ""


Např. Vrátí 1, neobjeví-li se okno Poznámkového bloku do 5 sekund.
Set oAutoIt = CreateObject("AutoItX.Control")
nErr = oAutoIt.WinWait ("Bez názvu - Poznámkový blok", "", 5)


WinWaitClose <Titulek okne>,<Text okna> [,<Prodleva>]

Zastaví provádění skriptu dokud udané okno nepřestane existovat.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.WinWaitClose, "Bez názvu - poznámkový blok", ""


WinWaitActive <Titulek okne>,<Text okna> [,<Prodleva>]

Zastaví provádění skriptu, dokud se nestane zadané okno aktivním.


WinWaitNotActive <Titulek okne>,<Text okna> [,<Prodleva>]

Zastaví provádění skriptu, dokud nepřestena být zadané okno aktivní.


WinHide <Titulek okne>,<Text okna>
WinShow <Titulek okne>,<Text okna>
WinRestore <Titulek okne>,<Text okna>
WinMinimize <Titulek okne>,<Text okna>
WinMaximize <Titulek okne>,<Text okna>
WinActivate <Titulek okne>,<Text okna>
WinClose <Titulek okne>,<Text okna>

Existuje-li dané okno, provede se příslušná akce (skrytí, zobrazení, obnovení, minimalizace, aktivace, uzavření okna).




Sleep   <milisekundy>

Pozastaví provádění skriptu na zadaný počet milisekund.
1000 milisekund = 1 sekunda. 1000 milliseconds = 1 second.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.Sleep 5000


SetKeyDelay   <milisekundy>

Nastaví prodlevu mezi dvěma stisky kláves v milisekundách.
Výchozí hodnota je 10ms, 1000 milisekund = 1 sekunda. Default is 10ms. 1000 milliseconds = 1 second.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.SetKeyDelay 50


LeftClick   <x>, <y>
RightClick  <x>, <y>

Simuluje klepnutím levým nebo pravým tlačítkem myši. Souřadnice X a Y jsou vztaženy k právě aktivnímu oknu. Spusťte AutoIt v informačním režimu, chcete-li zjistit vyžadované souřadnice.
Chcete-li simulovat poklepání, spusťte příkaz dvakrát za sebou :) To perform a double-click, simply run the command twice :)

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.LeftClick 50, 100


SetTitleMatchMode <režim>

Změní způsob porovnávání titulku okna ve skriptu.
Platné režimy jsou "1" a "2" - výchozí režim je "1". Tento režim ovlivňuje většinu metod AutoItX jež přijímají titulek a text okna jako parametry, mj. WinWait, WinWaitActive, IfWinActive atd.

Např..
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.SetTitleMatchMode 2

režim 1

Ve skriptu se udává začátek porovnávaného titulku okna. Pro okno programu notepad.exe (Bez názvu - Poznámkový blok) budou úspěšná tato porovnání:
"Bez názvu", "Bez názvu -", "Bez ná" a "Bez názvu - Poznámkový blok".

režim 2

Ve skriptu udáváte LIBOVOLNÝ podřetězec porovnávaného názvu okna. Pro okno notepad.exe by vypadala úspěšná porovnání takto:
"Bez nánvá", "Bez názvu - Poznámkový blok", "Poznámkový blok", "Poz".


WinMove   <Titulek okne>,<Text okna>, <X>, <Y>, <Šířka>, <Výška>

Existuje-li okno s daným tetiulkem a textem, je přesunuto do pozice <X>, <Y> a dostane velikost <Výška>, <Šířka>.

Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.WinMove "Bez názvu - Poznámkový blok", "", 0, 0, 100, 100

Takto se přesune okno Poznámkového bloku na pozici 0, 0 a změní velikost na 100, 100.


WinSetTitle <Titulek okne>,<Text okna>, <Nový titulek>

Tado metoda přejmenovává okno.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.WinSetTitle "Bez názvu - Poznámkový blok", "", "nový název toto je..."


DetectHiddenText   <on | off>

Některé programy užívají skrytý text v oknech (např. Backup Exec), což může působit potíže při jejich skriptování. Tento příkaz říká AutoItX zda má či nemá detekovat takovýto skrytý text. Výchozí hodnota je "off".

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.DetectHiddenText "ON"


< <Výsledek> = WinGetActiveTitle

Tato metoda získá titulek aktivního okna a předá jej proměnné <Výsledek>.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
CurrentTitle = oAutoIt.WinGetActiveTitle


SetWinDelay   <Milisekundy>

Nastavuje prodlevu po vykonání příkazů vztahujících se k oknu (čekání na okno, minimalizace, obnovení atd.), po níž bude obnoven běh skriptu. Užitečné na velmi pomalých strojích nebo jsou-li povoleny vlastnosti jako animace oken. Výchozí hodnota je 500 milisekund.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.SetWinDelay 2000
oAutoIt.WinWaitActive "Bez názvu - Poznámkový blok", ""
oAutoIt.Send "Ahoj"

V tomto příkladu bude prodleva 2000 milisekund (2 sekundy) po spuštění Poznámkového bloku a pak se objeví slovo "Ahoj".


WinMinimizeAll

Tado metod prostě minimalizuje všechna okna.


LeftClickDrag   <x1>, <y1>, <x2>, <y2>
RightClickDrag  <x1>, <y1>, <x2>, <y2>


Přetáhne ukazatel myši z x1, y1 do x2, y2 se stisknutým odpovídajícím tlačítkem myši. Souřadnice jsou vztaženy k aktivnímu oknu.

<Výsledek> = IfWinActive <Titulek okne>,<Text okna>

Metoda vrátí 1 je-li okno aktivní, jinak vrátí 0 .

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
nActive = oAutoIt.IfWinActive ("Bez názvu - Poznámkový blok", "")


<Výsledek> = IfWinExist <Titulek okne>,<Text okna>

Metoda vrátí 1 , pokud okno existuje, jinak vrátí 0 .

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
nExist = oAutoIt.IfWinExist ("Bez názvu - Poznámkový blok", "")


<Výsledek> = IniRead <Jméno souboru>, <Sekce>, <Klíč>
IniWrite  <Jméno souboru>, <Sekce>, <Klíč>, <Hodnota>


Umožňují čtení a zápis standardních .ini souborů Windiws, tedy následující formát.

[JmenoSekce]
Klic=Hodnota

Např. Načtení hodnoty "mujklic" ze sekce "mojesekce" souboru:
Set oAutoIt = CreateObject("AutoItX.Control")
Value = oAutoIt.IniRead ("c:\path\file.ini", "mojesekce", "mujklic")

Např. Zapsání textu "womble" do stejné sekce a klíče:
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.IniWrite ("c:\path\file.ini", "mojesekce", "mujklic", "womble")


Poznámka: Je nutno zadat jméno .ini souboru včetně úplné cesty.


<Výsledek> = ClipGet
ClipPut <Text>


Umožňuje přijetí a vyslání až 8192 znaků textu mezi schránkou a AutoItX.

Např. Přečtení textu ze schránky:
Set oAutoIt = CreateObject("AutoItX.Control")
Text = oAutoIt.ClipGet()

Např. Vložení textu "Vlož mě!" do schránky:
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.ClipPut "Vlož mě!"


Shutdown <Příznak>

Tato metoda umožňuje různým způsobem ukončit systém. Typ je určen <Příznakem>. Příznak může být kombinací hodnot z následující tabulky:

Funkce

Příznak
Odhlášení aktuálního uživatele 0
Ukončení systému 1
Restart systému 2
Vynucené uzavření aplikace (může dojít ke ztrátě neuložené práce) 4
Ukončení systému a vypnutí počítače (je-li podporováno) 8

Např. Ukončení systému s nuceným zavřením aplikací = Ukončení + Zavření = 1 + 4 = 5 :
Set oAutoIt = CreateObject("AutoItX.Control")
oAutoIt.Shutdown 5


WinKill <Titulek okne>,<Text okna>

Podobné metodě WinClose, ale pokud se okno nezavře do několika sekund (dotaz na uložení, zhroucení apod.), bude násilně odstraněno.


<Výsledek> = MouseGetPosX
<Výsledek> = MouseGetPosY

Tato metoda vydá aktuální pozici kurzoru myši, souřadnice 'x' a 'y'. Souřadnice jsou vztaženy k aktivnímu oknu.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
xPos = MouseGetPosX()
yPos = MouseGetPosY()


MouseMove <x pos>, <y pos>

Přesune ukazatel myši na pozici <xpos>, <ypos>. Souřadnice jsou vztaženy k aktivnímu oknu.

Např.
Set oAutoIt = CreateObject("AutoItX.Control")
MouseMove 10, 100

Návrat k Obsahu

Syntaxe metody Send

Syntaxe metody Send je podobná ScriptIt a příkazu Visual Basicu SendKeys. S výjimkou níže uvedených znaků jsou ostatní odeslány tak, jak jsou zapsány:

'!'
Povel k odeslání stisku klávesy ALT, tedy "Toto je text!a" odešle klávesy "Toto je text" a poté stisk kombinace "ALT+a".

Poznámka: Některé programy jsou háklivé na velikost písmen u ALT kombinací, kdy "!A je různé od "!a!. První odešle ALT+SHIFT+A, druhé ALT+a. Při pochybnostech užívejte malá písmena!

'+'
Odešle stisk klávesy SHIFT, tedy "Aho+j" odešle text "AhoJ". Řetězec "!+a" odešle "ALT+SHIFT+a".

'^'
Odesílá stisk klávesy CONTROL, tedy "^!a" odešle kombinaci "CTRL+ALT+a".

Poznámka: Některé programy jsou háklivé na velikost písmen v kombinaci s CTRL, kdy "^A" není totožné s "^a". První říká CTRL+SHIFT+A, dráhé CTRL+a. Při pochybnostech užívejte malá písmena!

'#'
Křížek lze použít jako oddělovač ke zpřehlednění odesílané sekvence kláves. "A#h#o#j" je totéž co "Ahoj".


Některá zvláštní klávesy lze také odeslat a jejich jména se uzavírají do složených závorek:

Poznámka: Windows nedovolí simolovat kombinaci CTRL+ALT+DEL.

Metoda Send

Vyslaný stisk klávesy

{!} !
{#} #
{+} +
{^} ^
{{} {
{}} }
{SPACE} Mezerník
{ENTER} ENTER
{ALT} ALT
{BACKSPACE} or {BS} BACKSPACE
{DELETE} or {DEL} DELETE
{UP} Šipka nahoru
{DOWN} Šipka dolů
{LEFT} Šipka vlevo
{RIGHT} Šipka vpravo
{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} Číslice na numerické klávesnici
{NUMPADMULT} Šedé *
{NUMPADADD} Šedé +
{NUMPADSUB} Šedé -
{NUMPADDIV} Šedé /
{NUMPADDOT} Desetinná tečka
{APPSKEY} Aplikační klávesa Windows
{ALTDOWN} Stisk klávesy ALT do přijetí {ALTUP}
{SHIFTDOWN} Stisk klávesy SHIFT do přijetí {SHIFTUP}
{CTRLDOWN} Stisk klávesy CTRL do přijetí {CTRLUP}
{ASC nnnn} Odeslání kombinace ALT+nnnn


Odeslání ASCII hodnoty A (stejné jako kombinace ALT+65 na numerické klávesnici) To send the ASCII value A (same as pressing ALT+65 on the numeric keypad)
{ASC 65}

Lze předepsat opakování jednotlivých kláves, např.
{DEL 4} Stiskne 4krát klávesu DEL
{S 30} Odešle 30 znaků 'S'
+{TAB 4}4násobný stisk SHIFT+TAB

Návrat k Obsahu

Příklady

Několik anglických příkladů najdete v tomto archivu, další lze najít na Domovské stránce AutoIt .

Návrat k Obsahu

Historie AutoItX

20. 12. 1999 - v1.32

10. 12. 1999 - v1.3

25. 11. 1999 - v1.23

23. 11. 1999 - v1.22

20. 11. 1999 - v1.21

18. 11. 1999 - v1.2

11. 09. 1999 - v1.1

28. 08. 1999 - v1.01

19. 08. 1999 - v1.0

Návrat k Obsahu