Описание:
Цитата:
Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.
[more=Справки]
AutoIt в Википедии
[b]Справочные материалы
Новая справка на русском, зеркало (8 Мб) для v3.3.8.1 от активных пользователей, обсуждается на OSzone
Справка на русском (v3.2.5.4 от Иванова) и по этой же ссылке есть справки на других языках
Видео-уроки на youtube от пользователя AutoIt Guide RUS
AutoIt Script : Введение
Урок 1: Скрипт HelloWorld
Урок 2: Автоматизация Notepad
Урок 3: Переменные, Массивы
Урок 4: Условные выражения
Урок 5: Циклы
Урок 6: Функции
Урок 7: Работа с файлами
Collection16.zip (11 Мб) или страница закачки на script-coding.com
Справка общего характера
Стили окон, ещё, ещё
Стили элементов управления
Справочник по командам rundll32
WinAPI
w32api - Справочник по Windows API, (веб-страничка).
WinAPI по-русски - БОЛЬШОЙ справочник, (веб-страничка).
Справочник по функциям Windows API, (веб-страничка).
Справочник по функциям Windows API, (веб-страничка).
Справочник по функциям Windows API, (веб-страничка).
WM Сообщения, (веб-страничка).
API-Guide 3.7 Справочник 925 функций, англ. яз. в виде программы EXE, русификатор
API-Viewer 2004, англ. яз. в виде программы EXE, русификатор
Справочнник по функциям Windows API от Дэниэла Эпплмана , англ. яз.
Сайт Владимира Соковикова
Win32API_First_Steps.zip (2 Мб) или страница закачки на script-coding.com
WinAPI (32) (3 Мб)
Справка WinAPI (Win 32 API по шагам)
WinAPI тот же выше указанный ресурс
Русский справочник по API-функциям
Недокументированные функиии Windows API, Синтаксис C (не VB!)
Помощь по регулярным выражениям
Учимся регулярно выражаться
Книга от Дж. Фридл - Регулярные выражения. Библиотека программиста [издание первое], [издание второе], [издание третье].
Ресурс, посвящённый регулярным выражениям.
Regular Expression Library - Online библиотека регулярных выражений
edlinsoft.blogspot.com - доступное пониманию описание конструкций
valera.asf.ru - доступное пониманию описание конструкций
msdn.microsoft.com - справочник по метасимволам
wiki - управляющие символы
Англоязычные учебники
Учебник по AutoIt для начинающих (англ. яз., pdf)
Видео-руководства на YouTube (англ. яз.)
AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (pdf)
Tutorial on DllCall() & DllStructs - Небольшое (пока?) руководство по использованию функции DllCall*()[/more][/b]
[more=Инструменты]
[b]Основные инструменты
SciTE4AutoIt3 (4.7 Мб) (Страница загрузки) - комплект содержит в себе следующие инструменты:
Koda (724 Kb) - Создание внешнего интерфейса GUI (окно с элементами управления).
Form Builder (Ссылка в конце первого поста темы) - Создание внешнего интерфейса GUI.
AutoIt3Wrapper (документация) - для компиляции скрипта с дополнительными возможностями (добавление значка, описания и т.п).
Obfuscator (документация) - делает неудобочитаемым AutoIt-код, удаляет комментарии и неиспользуемые функции.
CodeWizard (400 Kb) - Создаёт некоторые элементы интерфейса.
AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt-код.
Tidy (документация) - делает скрипт читабельным
SciTEConfig - позволяет настроить цветовое оформление и шрифты SciTE.
Дополнительные инструменты
SciTE-Ru - русский проект скайта.
RegToScript - конвертирование reg-файлов в скрипт. Автор NIKZZZZ.
RegExp - для теста регулярных выражений. страничка
Au3PP - Project Manager - программа для оптимизации скрипта, удаление комментариев, табов и пробелов в начале и в конце строки, добавление в скрипт функций вызываемых из Include. Но не всегда корректно отрабатывает. Автор kjactive.
Dependency Walker 2.2 - (0.6Мб, En) показывает задействованные программой DLL и задействованные в ней вызовы функций. пример использования
DLL Export Viewer v1.41 - (60кб, Ru) показывает имена функций в выбранном DLL.
AutoIt Path Switcher - Переключение пути к папке AutoIt.
ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
API Constants (817 Kb) - Утилита для просмотра констант API-функции.
AutoIt-меню для браузера Opera.
[/more][/b]
[more=Ресурсы, посвящённые AutoIt]
[b]Ресурсы, посвящённые AutoIt
autoitscript.com - Официальный англоязычный форум
AutoIt Russian Community - Русское сообщество AutoIt
Раздел в конференции OSzone.net, посвящённый AutoIt
Раздел в конференции Серый форум, посвящённый AutoIt
Jabber-конференция для обсуждения мелких вопросов касающихся AutoIt
Обзор скриптового языка AutoIt (рус.)
AutoIt на Yahoo! Groups (En)
Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
Коллекция AutoIt-скриптов от Sanja Alone
Коллекция AutoIt-скриптов от MSFN (могут быть устаревшие).
Коллекция AutoIt-скриптов от AZJIO
[/more][/b]
[more=Полезные советы новичкам и не только]
[b]Полезные советы новичкам и не только
1. «Если для вас понятно то, что вы пишете, это ещё не значит, что и остальным оно будет также очевидно!»
2. «Не всегда выставление полных примеров помогает тому, кто спрашивает... Если бы за меня вот так всегда всё делали, когда я начинал (показывали всё примерами, а не указывали на нужное направление), то вряд ли я бы развивался в изучении AutoIt'а»
3. Помимо тега code, используйте тег more для больших кусков кода. Так легче читать сообщения, это поможет не отпугнуть тех, кто всё же решится вам помочь .
4. Размещая вопрос, желательно при этом выкладывать код проблемного участка вашего скрипта.
5. Старайтесь предоставить как можно больше деталей касательно вашей проблемы (но не преувеличивая), гадать ещё никто не научился.
6. Старайтесь не выкладывать один и тот же пример в модифицированном виде, лучше всего поправьте своё первоначальное сообщение и сообщите об этом остальным в новом. Но если всё же модификация заслуживает отдельного, нового поста (например, если хочется сохранить и предыдущую версию примера), и в ней многие функции повторяются (не изменённые), то лучше их не выкладывать, а просто указать на предыдущую версию примера. Таким образом, не пострадает общение на форуме, качество сообщений и читабельность форума в целом .
7. Если у вас много времени, и так случилось, что вы пишете сообщение довольно долго (полчаса, скажем), то перед его отправкой лучше обновите страницу (на другом/й окне/вкладке), так как, возможно, на ваш вопрос уже дали ответ или (если вы пытаетесь помочь другим) похожее на ваше решение уже предоставили, поэтому незачем плодить одни и те же решения/примеры, это затруднит в будущем поиск и нахождение действительно важного решения/ответа.
8. Ну и, как (должно быть) известно, прежде чем что-либо спрашивать в этой (да и не только) ветке, используйте поиск, в нашем случае это:
По здешнему форуму
По официальному форуму
По форуму AutoIt на OSzone - содержит огромное количество материалов на тему AutoIt.
Рекомендации по написанию скриптов
В Autoit существует только один тип данных - Variant , поэтому для удобства написания скриптов рекомендуется использовать следующие имена переменных:
Первый набор символов после знака доллара ($) должен определять тип данных. Следующий список определяет префиксы и типы данных, используемых с ними:
$a<символ> - (Array) Массив данных - последующий символ, взятый из списка ниже, определяет тип данных в массиве
$b - (Binary data) Двоичные данные
$h - (File or window handle) Дескриптор файла, окна и т.д.
$i - (Integer) Целое число
$f - (Boolean) Логический тип, может принимать значения True или False
$n - (Floating point number) Число с плавающей точкой
$s - (String) Строка
$v - (Variant) Вариант, неопределенный тип данных, базовый тип для Autoit
$t - (Struct) Структура в стиле C/C++, для использования в DllCall, в сообщениях WM_*, при обработке данных и т.п.
$p - (Pointer) Указатель на структуру или на её элемент
Остальное имя переменной следует начинать с заглавной буквы, и оно должно отражать функциональность (свойства) переменной. Имена вроде “$iC” неприемлемы.
"$aiWeekDayNames" или "$iCounter" намного предпочтительнее.
Переведено с «User Defined Functions Standards».
P.S
От себя...
Такая манера написания скриптов уже стала почти стандартом среди AutoIt-кодеров, оно придаёт коду более читабельный и приятный вид.
[/more][/b]
[more=Готовые решения]
[b]Examples.7z - архив ниже приведённых скриптов.
Готовые скрипты и программы с открытым кодом на AutoIt
Desktop Icons Restorator - Скрипт-программа для сохранения/восстановления позиции значков рабочего стола.
CaptureIt - Утилита для захвата изображений с экрана.
SwitchIt - Скрипт для конвертирования выделенного текста.
Общие вопросы и решения на Autoit
Обработчик скриптов добавляющий отладчик (debugger) - Последняя версия: AutoItScript Add Debugger
Интеракция между несколькими скриптами
Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
Чтение и запись данных с/в окна/о SciTE
Пример автообновления версии своего приложения
Копирование большого файла с отображением данных прогресса
Создание динамического меню в Tray Icon (значок в области уведомлений)
Пример создания своего мастера (Wizard)
Метод, позволяющий запускать код VBS без создания временных файлов
Описание функции GUIRegisterMsg()
Пример перехвата вводимых символов с клавиатуры
Пример деактивирования TabItem
Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
Пример остановки/начало выполнения скрипта + Слежение за буфером обмена с заменой неподдерживаемых в имени файла символов
Подключение приложения (GUI) к буферу обмена
Пример использования меню с значками (ModernMenu.au3) -> Список программ в меню значка в системном трее
Пример подсчёта интервала времени между нажатиями клавиш
Слежение нажатых элементов в текущем окне (под курсором)
Написание instant messaging Бота на AutoIt
Способ, позволяющий посылать нажатие клавиши в неактивное окно (не путать со свёрнутым)
Сервер <=> Клиент - Пример передачи файла
Пример отображения только элементов GUI (без самой оболочки)
Модуль, превращающий ваше приложение в Trial-версию
Слежение за выделенным текстом и с последующим его помещением в файл
Отдельные функции и библиотеки (UDF):
Функции, относящиеся к интернету
_FTP_DirsListToArray - Функция получения списка каталогов (включая подкаталоги) на FTP
Функция для отправки электронной почты (email) с поддержкой Html и вложений файлов
Функции и пример для отображения детального процесса закачки файла
Функции отключения/подключения к интернету
Функция проверки подключения к интернету
_SocketToIP - Получение IP по подключённому сокету:
Код: ; Function to return IP Address from a connected socket.
;вызов функции через "Dim $szIP_Accepted = SocketToIP($ConnectedSocket)"
Func _SocketToIP($iSocket)
Local $stSockAddr = DllStructCreate("short;ushort;uint;char[8]")
Local $aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $iSocket, _
"ptr", DllStructGetPtr($stSockAddr), "int_ptr", DllStructGetSize($stSockAddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($stSockAddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
Return $aRet
EndFunc