Перейти на главную страничку сайта (список статей, файлы для скачивания)
AutoIt v3 - это свободно распространяемая (freeware) утилита, поддерживающая бейсико-подобный язык сценариев для автоматизации различных задач. Этот язык поддерживает эмуляцию нажатий клавиш, движений мыши, а также различные манипуляции окнами и их элементами управления, чтобы автоматизировать те задачи, которые невозможно автоматизировать на других языках (например, VBScript) или те задачи, автоматизация которых на других языках была бы не совсем надёжной (например, с помощью SendKeys в том же VBScript). Сайт программы (там её можно скачать): http://www.autoitscript.com/autoit3/. Здесь можно скачать русскую документацию к программе: http://www.autoitscript.com/autoit3/docs.php.
AutoItX - это "библиотечная" версия AutoIt v3, которая обеспечивает подмножество возможностей AutoIt через интерфейсы DLL и ActiveX/COM. Это означает, что вы можете использовать возможности AutoIt в вашем любимом языке программирования, например VB, VBScript, Delphi, C, C++, Kixtart и большинстве других языков, которые поддерживают использование DLL или ActiveX/COM.
Чтобы установить AutoItX, проделайте следующее:
regsvr32.exe "C:\WINDOWS\system32\AutoItX3.dll"
Примеры в настоящей статье будут приводиться на языке VBScript для сценариев WSH. Создание объекта AutoItX производится следующим образом:
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
В дальнейшем, в примерах, будем обращаться к созданному таким образом объекту oAutoIt. Подробную информацию о свойствах и методах объекта AutoItX3.Control вы можете получить в справочном файле AutoItX, который входит в поставку программы.
Возможности объекта:
Свойства и методы объекта AutoItX3.Control:
error | Состояние флага ошибки (свойство).
WScript.echo oAutoIt.error |
SW_HIDE SW_MAXIMIZE SW_MINIMIZE SW_RESTORE SW_SHOW SW_SHOWDEFAULT SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_SHOWMINNOACTIVE SW_SHOWNA SW_SHOWNOACTIVATE SW_SHOWNORMAL |
Константы для работы с функциями управления окнами (свойства).
WScript.echo oAutoIt.SW_MAXIMIZE |
AutoItSetOption | Настраивает различные параметры объекта. Синтаксис:
AutoItSetOption "option", paramЗдесь option - имя опции для изменения, param - значение опции. Примеры: oldvalue = oAutoIt.AutoItSetOption("CaretCoordMode", 0) oldvalue = oAutoIt.Opt("CaretCoordMode", 0)Возможные опции описаны в справочном файле AutoItX. |
BlockInput | Отключает/включает мышь и клавиатуру (блокирует/разрешает ввод пользователя). Синтаксис:
BlockInput 1|0Пример: oAutoIt.BlockInput 1 oAutoIt.Run "notepad.exe" oAutoIt.WinWaitActive "Безымянный - Блокнот" oAutoIt.Send "{F5}" oAutoIt.BlockInput 0 |
CDTray | Открывает или закрывает лоток компакт-диска. Синтаксис:
CDTray "drive", "status"Пример: oAutoIt.CDTray "E:", "open" WScript.Sleep 2000 oAutoIt.CDTray "E:", "closed" |
ClipGet | Извлекает текст из буфера обмена. Пример:
WScript.echo oAutoIt.ClipGet() |
ClipPut | Записывает текст в буфер обмена. Синтаксис:
ClipPut "value"Пример: oAutoIt.ClipPut "Текст" |
ControlClick | Посылает щелчок мыши элементу управления. Синтаксис:
ControlClick "title", "text", "controlID" [, button] [, clicks]]Пример (щелчок правой клавиши мыши по рабочему столу): oAutoIt.ControlClick "Program Manager", "", "SysListView321", "right" |
ControlCommand | Посылает команду элементу управления. Синтаксис:
ControlCommand "title", "text", "controlID", "command", "option"Пример (вставка текста в текущую позицию курсора в Блокноте): oAutoIt.ControlCommand "Безымянный - Блокнот", "", "Edit1", "EditPaste", "Текст"Возможные команды (параметр "command") описаны в справочном файле AutoItX. |
ControlDisable | Делает недоступным элемент управления. Синтаксис:
ControlDisable "title", "text", "controlID"Пример: oAutoIt.ControlDisable "Безымянный - Блокнот", "", "Edit1" |
ControlEnable | Делает доступным элемент управления. Синтаксис аналогичен ControlDisable. |
ControlFocus | Передаёт фокус элементу управления (окно должно быть активным). Синтаксис:
ControlFocus "title", "text", "controlID"Пример: oAutoIt.ControlFocus "Безымянный - Блокнот", "", "Edit1" |
ControlGetFocus | Возвращает идентификатор активного элемента управления окна (окно должно быть активным). Синтаксис:
ControlGetFocus "title", "text"Пример: WScript.echo oAutoIt.ControlGetFocus("Безымянный - Блокнот", "") |
ControlGetHandle | Возвращает внутренний дескриптор элемента управления окна. Синтаксис:
ControlGetHandle "title", "text", "controlID"Пример: WScript.echo oAutoIt.ControlGetHandle("Безымянный - Блокнот", "", "Edit1") |
ControlGetPosHeight ControlGetPosWidth ControlGetPosX ControlGetPosY |
Возвращает позицию и размер элемента управления в заданном окне. Синтаксис:
ControlGetPos<Height|Width|X|Y> "title", "text", "controlID"Пример: posx = oAutoIt.ControlGetPosX("Безымянный - Блокнот", "", "Edit1") posy = oAutoIt.ControlGetPosY("Безымянный - Блокнот", "", "Edit1") poswidth = oAutoIt.ControlGetPosWidth("Безымянный - Блокнот", "", "Edit1") posheight = oAutoIt.ControlGetPosHeight("Безымянный - Блокнот", "", "Edit1") WScript.echo posx & " " & posy & " " & poswidth & " " & posheight |
ControlGetText | Возвращает текст элемента управления в заданном окне. Синтаксис:
ControlGetText "title", "text", "controlID"Пример: WScript.echo oAutoIt.ControlGetText("Безымянный - Блокнот", "", "Edit1") |
ControlHide | Скрывает элемента управления заданного окна. Синтаксис:
ControlHide "title", "text", "controlID"Пример: oAutoIt.ControlHide "Безымянный - Блокнот", "", "Edit1" |
ControlListView | Посылает команду элементу управления ListView32. Синтаксис:
ControlListView "title", "text", "controlID", "command", "option1", "option2"Пример: oAutoIt.ControlListView "C:\Program Files", "", "SysListView321", "SelectAll", "", "" oAutoIt.ControlListView "C:\Program Files", "", "SysListView321", "Deselect", "2", "5"Возможные команды (параметр "command") описаны в справочном файле AutoItX. |
ControlMove | Перемещает элемент управления в пределах окна и меняет размеры элемента управления. Синтаксис:
ControlMove "title", "text", "controlID", x, y [, width [, height]]Пример: oAutoIt.ControlMove "Безымянный - Блокнот", "", "Edit1", 10, 10, 200, 200 |
ControlSend | Посылает строку символов элементу управления. Синтаксис:
ControlSend "title", "text", "controlID", "string" [, flag]Пример: oAutoIt.ControlSend "Безымянный - Блокнот", "", "Edit1", "Строка текста" |
ControlSetText | Задаёт текст элемента управления. Синтаксис:
ControlSetText "title", "text", "controlID", "new text"Пример: oAutoIt.ControlSetText "Безымянный - Блокнот", "", "Edit1", "Строка текста" |
ControlShow | Отображает элемент управления, который был ранее скрыт. Синтаксис:
ControlShow "title", "text", "controlID"Пример: oAutoIt.ControlHide "Безымянный - Блокнот", "", "Edit1" WScript.sleep 2000 oAutoIt.ControlShow "Безымянный - Блокнот", "", "Edit1" |
DriveMapAdd | Подключает сетевой диск. Синтаксис:
DriveMapAdd "device", "remote share" [, flags [, "user" [, "password"]]]Пример: oAutoIt.DriveMapAdd "X:", "\\CompName\shareddocs" |
DriveMapDel | Отключает сетевой диск. Синтаксис:
DriveMapDel "device"Пример: oAutoIt.DriveMapDel "X:" |
DriveMapGet | Возвращает путь сетевого диска. Синтаксис:
DriveMapGet "device"Пример: WScript.echo oAutoIt.DriveMapGet("X:") |
IniDelete IniRead IniWrite |
Удаляет, читает, записывает значения в INI-файл стандартного формата. Синтаксис:
IniDelete "filename", "section" [, "key"] IniRead "filename", "section", "key", "default" IniWrite "filename", "section", "key", "value"Пример: oAutoIt.IniWrite "C:\Temp\myfile.ini", "section1", "key1", "Новое значение 1" oAutoIt.IniWrite "C:\Temp\myfile.ini", "section2", "key2", "Новое значение 2" oAutoIt.IniDelete "C:\Temp\myfile.ini", "section1", "key1" WScript.echo oAutoIt.IniRead("C:\Temp\myfile.ini", "section1", "key1", "Не найдено") WScript.echo oAutoIt.IniRead("C:\Temp\myfile.ini", "section2", "key2", "Не найдено") |
IsAdmin | Проверяет, имеет ли текущий пользователь привилегии администратора. Пример:
WScript.echo oAutoIt.IsAdmin |
MouseClick | Эмулирует клик мыши. Синтаксис:
MouseClick "button" [, x, y [, clicks [, speed ]]]Пример: 'Двойной щелчок в текущей позиции мыши oAutoIt.MouseClick "left" oAutoIt.MouseClick "left" 'Двойной щелчок в позиции 40, 450 (курсор мыши будет перемещён) oAutoIt.MouseClick "left", 40, 450, 2 |
MouseClickDrag | Эмуляция перетаскивания мышью. Синтаксис:
MouseClickDrag "button", x1, y1, x2, y2 [, speed]Пример: oAutoIt.MouseClickDrag "left", 40, 450, 40, 500 |
MouseDown MouseUp |
Эмулирует нажатие и отпускание кнопки мыши в текущей позиции мыши. Синтаксис:
MouseDown "button" MouseUp "button"Пример: oAutoIt.MouseDown "right" oAutoIt.Sleep 2000 oAutoIt.MouseUp "right" |
MouseGetCursor | Возвращает текущий идентификатор указателя мыши. Пример:
WScript.Echo oAutoIt.MouseGetCursor()Возможные значения описаны в справочном файле AutoItX. |
MouseGetPosX MouseGetPosY |
Возвращает текущую позицию указателя мыши. Пример:
WScript.Echo oAutoIt.MouseGetPosX() & " " & oAutoIt.MouseGetPosY() |
MouseMove | Перемещает указатель мыши. Синтаксис:
MouseMove x, y [, speed]Пример: oAutoIt.MouseMove 40, 450, 0 |
MouseWheel | Прокручивает колесо мыши вверх или вниз. Только для NT/2000/XP. Синтаксис:
MouseWheel "direction" [, clicks]Пример: oAutoIt.MouseWheel "up", 10 |
PixelChecksum | Вычисляет контрольную сумму пикселей для региона. Ресурсоёмко. Контрольная сумма позволяет увидеть, изменилось ли что-то в регионе (но не говорит точно, что именно). Синтаксис:
PixelChecksum left, top, right, bottom [, step]Пример: WScript.echo oAutoIt.PixelChecksum(0, 0, 50, 50) |
PixelGetColor | Возвращает цвет пикселя в координатах x, y. Синтаксис:
PixelGetColor x , yПример: WScript.echo oAutoIt.PixelGetColor(10, 100) |
PixelSearch | Возвращает координаты пикселя с заданным цветом, найденного первым в заданном регионе, в формате "x,y". Ресурсоёмко. Синтаксис:
PixelSearch left, top, right, bottom, color [, shade-variation] [, step]] |
ProcessClose | Принудительно завершает процесс по имени или PID'у. Синтаксис:
ProcessClose "process"Пример: oAutoIt.ProcessClose "notepad.exe" |
ProcessExists | Определяет, существует ли указанный процесс, по имени или PID'у. Возвращает PID процесса. Синтаксис:
ProcessExists "process"Пример: WScript.Echo oAutoIt.ProcessExists("notepad.exe") |
ProcessSetPriority | Изменяет приоритет процесса. Синтаксис:
ProcessSetPriority "process", priorityПример: oAutoIt.ProcessSetPriority "notepad.exe", 0Возможные значения параметра "priority" описаны в справочном файле AutoItX. |
ProcessWait | Приостанавливает выполнение сценария, пока не запустится указанный процесс. Синтаксис:
ProcessWait "process" [, timeout]Пример: oAutoIt.ProcessWait "notepad.exe" WScript.echo "Блокнот запущен." |
ProcessWaitClose | Приостанавливает выполнение сценария, пока существует указанный процесс. Синтаксис:
ProcessWaitClose "process" [, timeout]Пример: oAutoIt.ProcessWaitClose "notepad.exe" WScript.echo "Блокнот завершил работу." |
RegDeleteKey RegDeleteVal |
Удаляет ключ или значение из реестра. Синтаксис:
RegDeleteKey "keyname" RegDeleteVal "keyname", "valuename"Пример: oAutoIt.RegDeleteVal "HKEY_LOCAL_MACHINE\SOFTWARE\TestKey", "TestValue" oAutoIt.RegDeleteKey "HKEY_LOCAL_MACHINE\SOFTWARE\TestKey" |
RegEnumKey RegEnumVal |
Возвращает имя указанного подключа реестра. Синтаксис:
RegEnumKey "keyname", instance RegEnumVal "keyname", instanceПример: WScript.Echo oAutoIt.RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", 3) WScript.Echo _ oAutoIt.RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", 1) |
RegRead | Читает значение из реестра. Синтаксис:
RegRead "keyname", "valuename"Пример: WScript.Echo _ oAutoIt.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", _ "ProgramFilesDir") |
RegWrite | Записывает значение в реестр (и ключ при необходимости). Синтаксис:
RegWrite "keyname", "valuename", "type", valueПример: oAutoIt.RegWrite _ "HKEY_LOCAL_MACHINE\SOFTWARE\TestKey", "TestVal", "REG_MULTI_SZ", _ "стр1" & vbCrLf & "стр2" |
Run RunWait |
Запускает внешнюю программу. RunWait запускает внешнюю программу и ожидает её завершения. Синтаксис:
Run "filename" [, "workingdir" [, flag]] RunWait "filename" [, "workingdir" [, flag]]Пример: oAutoIt.RunWait "Notepad.exe", "", oAutoIt.SW_MAXIMIZE WScript.echo "Блокнот завершил работу." |
RunAsSet | Инициализирует указанную пользовательскую учётную запись для последующих вызовов Run и RunWait. Только для 2000/XP и старше. Синтаксис:
RunAsSet "user", "domain", "password", optionsПример: oAutoIt.RunAsSet "Administrator", "MyDom", "adminpassword" |
Send | Посылает эмулируемые нажатия клавиш активному окну. Синтаксис:
Send "keys" [, flag]Пример: oAutoIt.Run "notepad.exe" oAutoIt.WinWaitActive "Безымянный - Блокнот" oAutoIt.Send "Сегодня {F5}"Способы обозначения различных клавиш описаны в справочном файле AutoItX. |
Shutdown | Делает LogOff, перезагружает или выключает систему. Синтаксис:
Shutdown codeПример: 'перезагрузка системы oAutoIt.Shutdown 2Возможные значения кодов описаны в справочном файле AutoItX. |
Sleep | Приостанавливает исполнение сценария на заданное число миллисекунд. Синтаксис:
Sleep delayПример: oAutoIt.Sleep 5000 'пять секунд |
StatusbarGetText | Возвращает текст заданной секции строки состояния указанного окна. Синтаксис:
StatusbarGetText "title" [, "text" [, part]]Пример: oAutoIt.AutoItSetOption "WinTitleMatchMode", 2 WScript.echo oAutoIt.StatusbarGetText("Internet Explorer") |
ToolTip | Выводит подсказку с заданным текстом под курсор мыши или в указанных координатах экрана. Синтаксис:
ToolTip "text" [, x, y]Пример: oAutoIt.ToolTip "Текст подсказки" oAutoIt.sleep 2000 |
WinActivate | Активизирует указанное окно (передаёт ему фокус). Синтаксис:
WinActivate "title" [, "text"]Пример: oAutoIt.WinActivate "Безымянный - Блокнот" |
WinActive | Выясняет, существует и активно ли указанное окно. Синтаксис:
WinActive "title" [, "text"]Пример: WScript.echo oAutoIt.WinActive("Безымянный - Блокнот") |
WinClose | Закрывает указанное окно. Синтаксис:
WinClose "title" [, "text"]Пример: oAutoIt.WinClose "Безымянный - Блокнот" |
WinExists | Проверяет существование указанного окна. Синтаксис:
WinExists "title" [, "text"]Пример: WScript.echo oAutoIt.WinExists("Безымянный - Блокнот") |
WinGetCaretPosX WinGetCaretPosY |
Возвращает координаты курсора ввода в активном окне. Пример:
WScript.echo oAutoIt.WinGetCaretPosX() & " " & oAutoIt.WinGetCaretPosY() |
WinGetClassList | Возвращает классы элементов управления указанного окна (разделитель - перевод строки). Синтаксис:
WinGetClassList "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetClassList("Безымянный - Блокнот") |
WinGetClientSizeHeight WinGetClientSizeWidth |
Возвращает размеры клиентской области указанного окна. Синтаксис:
WinGetClientSizeHeight "title" [, "text"] WinGetClientSizeWidth "title" [, "text"]Пример: WScript.echo "активное окно: " & oAutoIt.WinGetClientSizeWidth("") & _ "x" & oAutoIt.WinGetClientSizeHeight("") WScript.echo "рабочий стол: " & oAutoIt.WinGetClientSizeWidth("Program Manager") & _ "x" & oAutoIt.WinGetClientSizeHeight("Program Manager") |
WinGetHandle | Возвращает хэндл указанного окна. Синтаксис:
WinGetHandle "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetHandle("Безымянный - Блокнот") |
WinGetPosHeight WinGetPosWidth WinGetPosX WinGetPosY |
Возвращает позицию и размер указанного окна. Синтаксис:
WinGetPosHeight "title" [, "text"] WinGetPosWidth "title" [, "text"] WinGetPosX "title" [, "text"] WinGetPosY "title" [, "text"]Пример: x = oAutoIt.WinGetPosX("Безымянный - Блокнот") y = oAutoIt.WinGetPosY("Безымянный - Блокнот") width = oAutoIt.WinGetPosWidth("Безымянный - Блокнот") height = oAutoIt.WinGetPosHeight("Безымянный - Блокнот") WScript.echo "позиция: " & x & "x" & y & ", размер: " & width & "x" & height |
WinGetProcess | Возвращает идентификатор процесса (PID) указанного окна. Синтаксис:
WinGetProcess "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetProcess("Безымянный - Блокнот") |
WinGetState | Возвращает сумму флагов состояния указанного окна (существует, свёрнуто, активно и т.д.). Синтаксис:
WinGetState "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetState("Безымянный - Блокнот")Перечень флагов приведён в справочном файле AutoItX. |
WinGetText | Возвращает текст указанного окна. Синтаксис:
WinGetText "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetText("Безымянный - Блокнот") |
WinGetTitle | Возвращает полный заголовок указанного окна. Синтаксис:
WinGetTitle "title" [, "text"]Пример: WScript.echo oAutoIt.WinGetTitle ("Безымянный") |
WinKill | Принудительно закрывает указанное окно. Синтаксис:
WinKill "title" [, "text"]Пример: oAutoIt.WinKill("Безымянный - Блокнот") |
WinMenuSelectItem | Вызывает указанную команду меню указанного окна. Синтаксис:
WinMenuSelectItem "title", "text", "item" [, "item" [, "item" [, "item" [, "item" [, "item" [, "item"]]]]]]Пример: oAutoIt.WinMenuSelectItem "Безымянный - Блокнот", "", "&Файл", "Пара&метры страницы..." |
WinMinimizeAll WinMinimizeAllUndo |
Сворачивает все окна и отменяет это действие. Пример:
oAutoIt.WinMinimizeAll WScript.sleep 2000 oAutoIt.WinMinimizeAllUndo |
WinMove | Перемещает и/или изменяет размеры указанного окна. Синтаксис:
WinMove "title", "text", x, y [, width [, height]]Пример: oAutoIt.WinMove "Безымянный - Блокнот", "", 0, 0, 200, 200 |
WinSetOnTop | Изменяет флаг "Always On Top" указанного окна. Синтаксис:
WinSetOnTop "title", "text", flagПример: oAutoIt.WinSetOnTop "Безымянный - Блокнот", "", 1 |
WinSetState | Показывает, скрывает, свёртывает, развёртывает или восстанавливает указанное окно. Синтаксис:
WinSetState "title", "text", flagПример: oAutoIt.WinSetState "Безымянный - Блокнот", "", oAutoIt.SW_HIDE oAutoIt.Sleep 2000 oAutoIt.WinSetState "Безымянный - Блокнот", "", oAutoIt.SW_SHOW |
WinSetTitle | Изменяет заголовок указанного окна. Синтаксис:
WinSetTitle "title", "text", "newtitle"Пример: oAutoIt.WinSetTitle "Безымянный - Блокнот", "", "Новый заголовок" |
WinSetTrans | Устанавливает степень прозрачности указанного окна (Windows 2000/XP или позже). Синтаксис:
WinSetTrans "title", "text", transparencyПример: oAutoIt.WinSetTrans "Безымянный - Блокнот", "", 100 |
WinWait | Ожидает появления указанного окна указанное время. Синтаксис:
WinWait "title" [, "text" [, timeout]]Пример: oAutoIt.WinWait "Безымянный - Блокнот" WScript.echo "Блокнот запущен." |
WinWaitActive | Ожидает активизации указанного окна указанное время. Синтаксис:
WinWaitActive "title", ["text"], [timeout]Пример: oAutoIt.WinWaitActive "Безымянный - Блокнот" WScript.echo "Блокнот активизирован." |
WinWaitClose | Ожидает исчезновения указанного окна указанное время. Синтаксис:
WinWaitClose "title" [, "text" [, timeout]]Пример: oAutoIt.WinWaitClose "Безымянный - Блокнот" WScript.echo "Блокнот закрыт." |
WinWaitNotActive | Ожидает деактивизации указанного окна указанное время. Синтаксис:
WinWaitNotActive "title" [, "text" [, timeout]]Пример: oAutoIt.WinWaitNotActive "Безымянный - Блокнот" WScript.echo "Блокнот деактивирован." |
Людоговский Александр
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.