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

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

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

Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

   

AddXL

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

AutoIt3

 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

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

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Справочник по командам rundll32
  • Русский справочник по API-функциям
  • Помощь по Регулярным выражениям
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf)
     
    Инструметы для AutoIt:
  • AutoIt3Wrapper [Страница закачки] - Программа для компилляции скрипта с дополнительными возможностями (добавление иконки, описании и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-Функции и не только.
  • Страница закачки утилит которые идут в отдельной поставке редактора SciTE.
  • AutoIt меню для браузера Opera
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Коллекция AutoIt скриптов от Sanja Alone
  • Коллекция скриптов на http://msfn.org
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Desktop Icons Restorator - Скрипт-Программа для сохранения/восстановления позиции иконок р.стола.
  • CaptureIt - Утилита предназначена для захвата изображений с вашего экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста
  • Скрипт расскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger)
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значёк в области уведомления)
  • Пример создания своего мастера (Wizard)
  • Метод позволяющий запускать код VBS не создавая временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за б.обмена с заменой неподдерживаемых в имени файла символов
  • Пример использования меню с иконками (ModernMenu.au3) -> Список программ в меню значка в системном трее
     
  • Как по PID процесса вычислить путь запускаемого файла
  • Получение IP по подключенному сокету
     
    Отдельные функции (UDF):
  • Функции Отключения/Подключения к Интернету
  • Функция проверки подключения к Интернету
  • Функция для получения структуры директории включая подкаталоги
  • Функция для поиска в файлах
  • Функция для смены разрешения экрана
  • Функция для смены раскладки клавиатуры в определённом окне
  • Функция для получения списка процессов с допол. инфой (путь к исполняемому файлу и др.)
  • Функции и пример для отображения детального процесса закачки файла
  • Функция (и пример использования) для отображения стильного диалога “О Программе” - [Усовершенствованная версия]
  • Функция возвращает пронумерованный список всех классов определённого окна + функция получения хендлов для этих классов
  • Функция для получения заголовка окна (или его идентификатора) по ID процесса (PID)
  • Функция _StringIsUTF8Format() + _StringToUTF() - Первая проверяет если строка содержится в UTF-8 формате, вторая преобразовывает строку в UTF-8 формат
  • Функция _FileOpenDialogEx - Возвращает массив (или строку) с полными путями к выбранным файлам
  • _AU3_Lib* Функции - Предназначены для обработки подключаемых библиотек через #include
  • Функция транслитерации строки
  • Расширенная библиотека для работы с реестром
     
    За шапкой следит ViSiToR  

  • Всего записей: 6 | Зарегистр. 24-11-2005 | Отправлено: 13:20 24-11-2005 | Исправлено: Maz, 11:50 17-04-2017
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    kronic
     
    поконкретнее, пож, какие символы?
    из какого файла?
     
    эмуляция нажатий на клавиатуре вызывается функцией: Send
    файл считать можно с помощью функций: FileRead , FileReadLine, попутно ищя нужные символы...

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 21:01 01-12-2008
    kronic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sproxy
    Из текстового файла  
    Например:
    4567689DD
     

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 21:04 01-12-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ViSiToR, не знаешь ли, как как переименовать название ключа реестра?
    что бы не заниматься перекопированием всего из страого в новый....
     
    к примеру: HKEY_LOCAL_MACHINE\SOFTWARE\my_key
    переименовать в: HKEY_LOCAL_MACHINE\SOFTWARE\my_key2

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 21:05 01-12-2008
    kronic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    А если в одной строчке много текстовых символов

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 21:06 01-12-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    если уточнить:
     

    Код:
     
    $sFile = FileOpen ("test_file.txt", 0) ;Открыть файл test_file.txt только на чтение. Файл должен находиться рядом с файл этого скрипта AutoIT
    $sChars = FileReadLine ($sFile, 3) ;Считывает символы с третьей строки файла  
    FileClose ($sFile)
    MsgBox (0, "", "Прочитаны данные из файла:" & $sChars & @CRLF & "Откройте нужное окно и установите курсор в необходимое поле ввода.")
    Sleep (2000) ;Пауза скрипта, что бы успеть открыть нужное окно
    Send ($sChars) ;Отправка прочитанных данных из файла в текущее активное окно - необходимо установить курсор в нужное поле ввода
     

     

    Цитата:
    А если в одной строчке много текстовых символов

     
    позиция нужных символов известна?
    т.е. с какого по счету символа и по какой необходимы данные?
    или к примеру, если есть список необходимых символов,
    то можно при считывание строчки, искать в ней необходимые
    символы по списку и найденные находить..
     

    Код:
     
    $sFile = FileOpen ("test_file.txt", 0) ;Открыть файл test_file.txt только на чтение. Файл должен находиться рядом с файл этого скрипта AutoIT
    $sChars = FileReadLine ($sFile, 3) ;Считывает символы с третьей строки файла  
    FileClose ($sFile)
    $sChars2 = StringMid ($sChars, 2, 9) ;Выбрать из считанной строки из файла данные со второго символа и далее 9 символов
    MsgBox (0, "", "Прочитаны данные из файла: " & $sChars & @CRLF & "Выбранные данные: " & $sChars2 & @CRLF & "Откройте нужное окно и установите курсор в необходимое поле ввода.")
    Sleep (2000) ;Пауза скрипта, что бы успеть открыть нужное окно
    Send ($sChars2) ;Отправка прочитанных данных из файла (со 2 позиции 9 символов) в текущее активное окно - необходимо установить курсор в нужное поле ввода
     

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 21:25 01-12-2008 | Исправлено: sproxy, 21:36 01-12-2008
    kronic

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sproxy
    ViSiToR
    Спасибо очень помогли.

    Всего записей: 168 | Зарегистр. 01-11-2006 | Отправлено: 21:33 01-12-2008
    guest228977



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Пробую в написании гуи к скрипту.
    Задача состоит в том что на странице нужно вывести определенный список файлов с чекбоксами и при нажатии клавиши отмеченные пользователем файлы обработать.  
    Выбрал дерево treeview со стилем $TVS_CHECKBOXES.
    Уважаемые знатоки подскажите пожалуйста как получить массив выделенных элементов дерева? Дерево может быть двухуровневым. Первый уровень папки или файлы, второй - файлы.
    Заранее спасибо.

    Всего записей: 39 | Зарегистр. 25-04-2007 | Отправлено: 23:25 01-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 21:05 01-12-2008
    Цитата:
    как переименовать название ключа реестра?

    Только пересозданием
     
    Кстати, вот тут я выложил дополненную библиотеку для работы с реестром. В оригинале библиотека взята отсюда (от wraithdu). Там есть функции _RegMoveKey() и _RegMoveValue(), с их помощью можно переименовать ключ.
     

    Код:
    _RegMoveValue("HKCU\Software\Test", "SomeKey", "HKCU\Software\Test", "NewKey")


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:55 01-12-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Спасибо, ViSiToR.
    При использование были ошибки,
    написал сам, заодно и понял почему были ошибки...)
    ....у меня только проверок на ошибки нет..
     

    Код:
     
    #region: - Скопировать или переместить ключ реестра
        Func reg_copy_move_key ($key_from, $key_to, $key_from_del)
            reg_serch_key ($key_from, $key_to)
            reg_copy_zn ($key_from, $key_to)
            If $key_from_del == 1 Then RegDelete ($key_from)  
        EndFunc
     
        Func reg_serch_key ($key_from, $key_to)
            Local $i=1, $key_s
            While 1
                $key_s = RegEnumKey ($key_from, $i )
                If @error == -1 OR @error == 1 Then ExitLoop
                reg_copy_zn ($key_from & "\" & $key_s, $key_to & "\" & $key_s)
                reg_serch_key ($key_from & "\" & $key_s, $key_to & "\" & $key_s)
                $i+=1
            WEnd
        EndFunc
     
        Func reg_copy_zn ($in_key, $to_key)
            Local $n=1, $zn_name, $zn_data
            Local $zn_type[8] = [7, "REG_SZ", "REG_EXPAND_SZ", "REG_BINARY", "REG_DWORD", "REG_DWORD_BIG_ENDIAN", "REG_LINK", "REG_MULTI_SZ"]
            While 1
                $zn_name = RegEnumVal ($in_key, $n)
                If @error == -1 OR @error == 1 Then ExitLoop
                $zn_data = RegRead ($in_key, $zn_name)
                RegWrite($to_key, $zn_name, $zn_type[@extended], $zn_data)
                $n+=1
            WEnd
        EndFunc
    #endregion
     

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 02:23 02-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 02:23 02-12-2008
    Цитата:
    При использование были ошибки

    Какие?

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 02:29 02-12-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    в куске:
     

    Код:
     
    Func _RegCopyValue($s_Key, $s_Val, $d_Key, $d_Val, $iDelete = False)
        Local $sData, $sType
     
        $sData = RegRead($s_Key, $s_Val)
        If @error Then Return SetError(1, 0, 0) ; some error reading Value, skip it
        
        $sType = _RegGetExtendedType(@extended)
                ..........
     

     
    выдавал ошибку на " $sType = _RegGetExtendedType(@extended) "
     
    сейчас перепробовал, выдает ошибку:
     

    Код:
     
    C:\PROGRA~1\AutoIt\Include\Registry_UDFs.au3 (54) : ==> Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.:
    _RegCopyKey($s_Key & "\" & $sKey, $d_Key & "\" & $sKey)
    => ??????? ? Winamp
     

     
    Кстати, не ты ли автор прожки, у тебя в лаборатаротии, для чистки мыши и клавиатуры?
    (KeyBoard and Mouse Cleaner!) Это же гениально...просто...хм, не всегда нужно....но как гениально и даже как то....мило...))))))).....
     
    Добавлено:
       
     
    Добавлено:
    ооо!! up level! I`am now have status "Junior Member" !! wow!

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 02:41 02-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy 02:41 02-12-2008
    Цитата:
     Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.:

    Мда, рекурсия не самый лучший способ перебора ключей... кстати, там небольшой недочёт есть при проверке ошибок. Нужно заменить If @error Then.. на If @error <> 0 Then.. (после RegEnumKey($s_Key, $i)). Возможно из за этого цикл не прерывается во время.
     

    Цитата:
    Кстати, не ты ли автор прожки, у тебя в лаборатаротии, для чистки мыши и клавиатуры?  
     (KeyBoard and Mouse Cleaner!) Это же гениально...просто...хм, не всегда нужно....но как гениально и даже как то....мило...))))))).....

    Я . Спасибо.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 09:40 02-12-2008
    hunter19

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет всем!
    Подскажите, пожалуйста, можно создать такой скрипт, который мог бы внедряться в другой процесс и выполнять в нём команды? Пробовал эмуляцию нажатий клавиш в этом приложении(процессе), но не получается добиться высокой эффективности. Я во внедрениях не разбираюсь. Хотя бы пример посмотреть, как это делается.

    Всего записей: 86 | Зарегистр. 28-02-2007 | Отправлено: 09:42 02-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    hunter19 09:42 02-12-2008
    Цитата:
    можно создать такой скрипт, который мог бы внедряться в другой процесс и выполнять в нём команды?

    Какой процесс, какого рода команды? Желательно бы увидеть пример того, что уже имеется (чтобы лучше понять, что конкретно требуется).

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:22 02-12-2008
    hunter19

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Процесс - hl.exe (Counter-Strike)
    Надо, чтобы с помощью скрипта была возможность отправлять в консоль контры на выполнение некоторые команды.

    Всего записей: 86 | Зарегистр. 28-02-2007 | Отправлено: 10:38 02-12-2008
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy

    Цитата:
    как переименовать название ключа?

    Можно используя встроенную Windows утилиту reg.exe

    Код:
    $sRegSource = "HKCU\Software\MyProgram"
    $sRegPath   = "HKCU\Software\MyProgramBK"
     
    Run(@ComSpec & ' /c reg copy "' & $sRegSource & '" "' & $sRegPath & '" /s /f', @SystemDir, @SW_HIDE)
    Run(@ComSpec & ' /c reg delete "' & $sRegSource & '" /f', @SystemDir, @SW_HIDE)

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 12:09 02-12-2008 | Исправлено: Maza_Faka, 12:23 02-12-2008
    deadbead

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую!
     
    Необходимо сделать псевдоактивное окно!) Расскажу в чем суть)
     
    Однажды случайно что-то ткнув на клаве+мыше наблюдал такую ситуацию: Активное окно, а за ним Второе и тоже активное! Причем второе окно еще было выделено на панели задач (как будто ему послали Flash) Это 2 окна одной и той-же игрушки... при этом на кнопки управления реагировало оба окна!
     
    В описании функции WinActivate присутствуют следующие строки: "Если окно свёрнуто, оно будет автоматически восстановлено перед активацией."
     
    Собственно вопрос в том как активировать свернутое окно не восстанавливая его?

    Всего записей: 19 | Зарегистр. 02-12-2008 | Отправлено: 13:23 02-12-2008
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    hunter19 10:38 02-12-2008
    Цитата:
    Процесс - hl.exe (Counter-Strike)  
     Надо, чтобы с помощью скрипта была возможность отправлять в консоль контры на выполнение некоторые команды.

    Это почти ни о чём не говорит. Но вобщем случае подобная затея не реализуема.
     
    deadbead 13:23 02-12-2008
    Цитата:
    как активировать свернутое окно не восстанавливая его?

    Интересно, мне что-то не удаётся вообразить эту картину... Окно активное, но свёрнутое? Парадокс однако

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 13:50 02-12-2008
    sproxy



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Maza_Faka,волшебно работает! Спасибо!
     
    Может быть есть общая справка (список имеющихся) по всем встроенным\стандартным утилитам windows на подобии этой?
     
    hunter19, так а чем эмуляция нажатий не подходит, чем не так?
    а встроенный скрипт язык? можно же на одну клавищу куууучу команд
    записать: покупка всего что угодно, настройки сервера и т.д.....пока
    понять не могу смысла сложных действий с внедрением в консоль,
    если встроенный язык может многое...
     
    deadbead, свернуто, но активно - и в правду парадокс))
    но в тему "непонятного", можно сделать окно активным и задать ему
    позицию за экран, тогда и активно будет, но не видно)))
     
    Добавлено:
    к стати ребята, ViSiToR, Maza_Faka, по поводу Tollbar buttons.
    Нашел в UDF как создать такю панель, сделал, все ок.
    Вот только она всегда распологается в верху окна, а нужна заданная
    позиция, скажем х=300, у=100. Тогда сделал дочерное окно
    в нужной позиции и уже в нем разместил панель Tollbar buttons.
    И все это находится в родительском окне на одной из вкладок Tab.
    Пока таких Tollbaк buttons панелей не много. Но вот если приспичет
    по более, да и по разнообразней: по 1, 2, 3 кнопки, и таких штук 20
    на вкладке. думаю уже это будет не очень в работе....даже сейчас
    при смене вкладок видно как прорисовываются эти дочерные окна
    с панельками Tollbar. Не смертельно и не тормазнуто, но если их
    будет много будет не айс.......
     
    Вопрос: возможно ли разместить Tollbar в заданной позиции окна?
    Или может есть другой способ создать такие же кнопки как создаются
    в Tollbar buttons ?

    Всего записей: 556 | Зарегистр. 21-11-2007 | Отправлено: 23:35 02-12-2008
    Maza_Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sproxy

    Цитата:
    Может быть есть общая справка

    c:\WINDOWS\Help\ntcmds.chm
     

    Цитата:
     
    Или может есть другой способ создать такие же кнопки как создаются  
    в Tollbar buttons ?
     

    Вроде бы мы с ViSiToR-ом уже отвечали на этот вопрос?

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:36 03-12-2008
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 1)
    Widok (12-01-2009 14:47): лимит страниц. продолжаем здесь


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru