Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Обзор библиотеки AutoItX3.dll

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, проделайте следующее:

Примеры в настоящей статье будут приводиться на языке 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 При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.