Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 

  • 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*()[/b]

  • [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.
     
  • Декомпиллятор AutoIt.
    [/b]

  • [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
    [/b]

  • [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-кодеров, оно придаёт коду более читабельный и приятный вид.
    [/b]

  • [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

     
     
    Функции для работы с процессами и окнами
     
  • Функция для получения списка процессов с дополнительной информацией (путь к исполняемому файлу и др.)
  • Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
  • Функция для возврата пронумерованного списка всех классов определённого окна + функция получения хендлов для этих классов
  • Функция для получения командной строки исполняемого файла
  • Функция для получения PID родительского процесса + Функция для получения массива с PID дочерних процессов
     
  • Функция для получения пути исполняемого файла по PID (идентификатор процесса):

    Код:
    $pid = ProcessExists("mirc.exe")
    MsgBox(0, '', _ProcessGetLocation($pid))
     
    Func _ProcessGetLocation($iPID)
        Local $aProc = DllCall('kernel32.dll', 'hwnd', 'OpenProcess', 'int', BitOR(0x0400, 0x0010), 'int', 0, 'int', $iPID)
        If $aProc[0] = 0 Then Return SetError(1, 0, '')
        Local $vStruct = DllStructCreate('int[1024]')
        DllCall('psapi.dll', 'int', 'EnumProcessModules', 'hwnd', $aProc[0], 'ptr', DllStructGetPtr($vStruct), 'int', DllStructGetSize($vStruct), 'int_ptr', 0)
        Local $aReturn = DllCall('psapi.dll', 'int', 'GetModuleFileNameEx', 'hwnd', $aProc[0], 'int', DllStructGetData($vStruct, 1), 'str', '', 'int', 2048)
        If StringLen($aReturn[3]) = 0 Then Return SetError(2, 0, '')
        Return $aReturn[3]
    EndFunc

     
     
    Функции для работы с файлами
     
  • FilesCopyProgress - Копирование файлов с отображением прогресса
  • Функция для получения структуры каталога, включая подкаталоги
  • Функция для поиска в файлах
  • _DirIsEmpty - Функция, проверяющая, не является ли определённая папка пустой
     
     
    Функции для GUI/Tray
     
  • Функция (и пример использования) для отображения стильного диалога “О программе” - [Старая версия]
  • Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
  • System Dialogs - Функции для работы с системными диалогами
  • GUICtrlSetOnHover UDF - Библиотека для работы с событием OnHover (наведение курсора мыши) у элементов
  • _GUICtrlCreateTFLabel - Создание форматированного Label'а
     
     
    Системные функции
     
  • Функция для смены разрешения экрана
  • Функция для смены раскладки клавиатуры в определённом окне
  • Расширенная библиотека для работы с реестром
  • Расширенная функция _IsPressedEx() - Для отлова нажатых клавиш (не Keylogger)
     
     
    Разное (то, что не подпадает под другие категории)
     
  • UDF Collection - Коллекция библиотек на официальном форуме
  • Autoit Wrappers - Мелкие, но полезные ухищения/функции при работе с AutoIt
     
  • WinAPIEx UDF - Расширение стандартной AutoIt библиотеки WinAPI.au3
  • Encoding UDF - Библиотека для работы с кодировками строк
  • NomadMemory UDF - Библиотека для работы с памятью
  • MouseSetOnEvent - Обработка событии мышки
  • Функция транслитерации строки
  • _AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
    [/b]
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
       

    На первую страницук этому сообщениюк последнему сообщению

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
    gyra (23-01-2020 10:51): AutoIT (Часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru