'X'
Verze 1.32 - (C)1999 Jonathan Bennett
(Email: jbennett@hidden.demon.co.uk)
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 ]
1. Úvod
9. Příklady
10. Historie AutoItX
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.
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.
Viz soubor License.txt obsažený v tomto archivu.
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.
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")
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
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
Několik anglických příkladů najdete v tomto archivu, další lze najít na Domovské stránce AutoIt .
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