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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



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

 
Описание:

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

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zakkazak
    Цитата:
    если хранит прога настройки в hkcu\Software\прога  , то скрипт открывает эту ветку,  
    а если нет, ну и чёрт с ним, скрипт ничего не открывает
    Попробуйте так:
    Подробнее...
     
    Открытие редактора реестра в заданной ветке.
     WinAPIEx.au3.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 11:56 13-02-2011 | Исправлено: madmasles, 17:19 15-02-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    если уж открывать, то явно не по имени проги, а сделать небольшой список соответствия

    Цитата:
    имя EXE|имя программы|раздел в реестре

    хотя для меня идея утопичная...

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 19:48 13-02-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Цитата:
    если уж открывать, то явно не по имени проги

    У меня открывает по имени папки проги, хотя тоже большого смысла в этом не вижу.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 20:23 13-02-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Утилитка Device_off_on для переключения устройств с ярлыка, при этом иконка ярлыка отображает состояние устройства выключено или включено. В параметрах указывается код устройства и необязательный параметр - имя/путь ярлыка. Проверено на WinXP.
     
    ViSiToR
    Незнал, что есть Client for Google Translate

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 03:30 14-02-2011 | Исправлено: AZJIO, 19:10 14-02-2011
    Zakkazak



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

    Цитата:
    У меня открывает по имени папки проги

    у меня скрипт почему-то выдаёт выдает такую ошибку:
    Код:
    Line 34  (File "D:\txt_stx\AutoIt3\WinAPIEx_3.2\key.au3"):
     
    If $aCountSub[0] Then
    If $aCountSub^ ERROR
     
    Error: Subscript used with non-Array variable.

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 16:36 15-02-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zakkazak,
    Я код поменял, добавил проверки на ошибки.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 17:20 15-02-2011
    Zakkazak



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

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 18:42 15-02-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles, vicbox777, ну во стмотрите уже готовый вариант подарка. Есть время ещё улучшить.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 07:30 24-02-2011
    shidow



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто-нибудь сможет сделать не очень сложный скрипт инсталлятора для Inno setup? Практически без доп. библиотек и утилов. Идея по дизайну есть но сам не сделаю. Помогите плииз.  

    Всего записей: 142 | Зарегистр. 18-02-2011 | Отправлено: 16:32 24-02-2011
    Alfizik

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, пришел к Вам из ветки InqSoft Neo Sign 0f Misery так как не смог при помощи Sign 0f Misery реализовать следующую идею:
     
    Есть парк машин, на них установлен антивирус NOD, обновляется с free-сервера, сервер поменял адрес, теперь NOD не обновляется,  хочется на всех машинах автоматизировать изменение настроек в NOD, чтоб не делать одно и тоже на каждой машине вручную.  
     
    Алгоритм представляется таким:  
     
    1. Вызвать GUI интерфейс антивируса NOD, путем запуска его exe-шника - C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe
     
       
     
    2. Эмулировать нажатие клавиши F5 - вызывает окно настроек антивируса
     
       
     
    3. В окне настроек перейти к пункту "Обновление" - как вариант это можно осуществить эмуляцией нажатия клавиши "о" (обновление).
     
       
     
    Или как вариант просканировать класс окна, затем перейти к этому классу, затем найти дочернее окно "Обновление" и послать команду "нажать".
     
    В Sign 0f Misery в конечном итоге реализовал этот пункт эмуляцией нажатия клавиши "Home" и последовательно 13 раз нажатием кнопки "Стрелка вниз".  
     
    4. Эмулировать нажатие на кнопку "Изменить..." - как вариант это можно осуществить эмуляцией 4 подряд нажатий на клавишу Tab (фокус переместиться на кнопку "Изменить...") и затем нажатие клавиши "з" (изменить).  
     
    В Sign 0f Misery в конечном итоге реализовал этот пункт тем, что просканировал класс окна, нашел дочернее окно "изменить" и послал ему команду "кликнуть мышкой".
     
    5. В строке "Серверы обновлений:" вести текст - допустим http://172.16.50.2:2221
     
       
     
    Вот этот пункт в Sign 0f Misery никак реализовать и не удалось  
     
    6. Эмулировать нажатие кнопки "Добавить"  
     
    7. Эмулировать нажатие кнопки "Ок"  
     
    8. Еще раз эмулировать нажатие кнопки "Ок", чтобы закрыть окно настроек.  
     
    Можно ли подобный алгоритм осуществить в AutoIT и если да, то как? Помогите пожалуйста.  

    Всего записей: 199 | Зарегистр. 14-12-2006 | Отправлено: 13:04 25-02-2011 | Исправлено: Alfizik, 13:09 25-02-2011
    kosjachok



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

    Код:
     
    RUN ('C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe')
    WinWait("ESET","")
    Send("{F5}")
    Sleep(500)
    Send("{HOME}")
    Sleep(200)
    Send("{DOWN 13}")
    ControlClick ( "ESET NOD32 Antivirus", "", "[CLASS:Button; TEXT:И&зменить...]" )
    Sleep(200)
    If Not WinExists ('Список серверов обновлений') Then
       MsgBox(0, "Внимание!", "Не вижу окна Список серверов обновлений ! ")
       Exit
    EndIf

    ControlSend("Список серверов обновлений", "", "[CLASS:Edit]", "http://123.123.123.12/")
    ControlClick ( "Список серверов обновлений", "", "[CLASS:Button; TEXT:&Добавить]" )
    ControlClick ( "Список серверов обновлений", "", "[CLASS:Button; TEXT:&OК]" )
    ControlClick ( "ESET NOD32 Antivirus", "", "[CLASS:Button; TEXT:&OК]" )
    WinClose ( "ESET NOD32 Antivirus")
    MsgBox(0, "Внимание!", "Выполнено! ")
    Exit

    Разбирайся...

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 15:52 25-02-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alfizik
    Такие длинные посты с огромными картинками прячут под тег MORE

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 18:15 26-02-2011
    berkut9737



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Как вы думаете, при помощи AutoIT можно создать скрипт, который будет выполнять поиск нужного ключа в реестре по-маске? Спасибо.

    Всего записей: 1140 | Зарегистр. 05-04-2009 | Отправлено: 13:15 01-03-2011
    kosjachok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    berkut9737
    запросто!

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 13:27 01-03-2011
    berkut9737



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kosjachok Подскажите, пож., какие функции будут принимать в этом процессе участие? Просмотрел в справке "записи в реестре" и мне показалось, что этого не достаточно. С чего начать?
     

    Всего записей: 1140 | Зарегистр. 05-04-2009 | Отправлено: 13:35 01-03-2011 | Исправлено: berkut9737, 13:37 01-03-2011
    kosjachok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот пример:
    Подробнее...
     
    Добавлено:
    там описана функция _RegSearch()

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 13:36 01-03-2011
    berkut9737



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

    Цитата:
    Вот пример: Подробнее... [?]

    Огромное спасибо! Буду разбираться. И ещё вопрос. По-вашему, за сколько времени этот скрипт отработает?
     
    Добавлено:
    kosjachok
     

    Цитата:
    там описана функция _RegSearch()

     
    А где эта функция в справке, не подскажете в каком разделе?

    Всего записей: 1140 | Зарегистр. 05-04-2009 | Отправлено: 13:41 01-03-2011
    kosjachok



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

    Цитата:
    А где эта функция в справке, не подскажете в каком разделе?

    Эта функция написана одним из пользователей(вы тоже можете под себя писать функции) с использованием стандартных RegRead и RegEnumVal (которые есть в справке) и в моем примере закомментировано описание параметров функции от её создателя...
     

    Цитата:
    Огромное спасибо! Буду разбираться. И ещё вопрос. По-вашему, за сколько времени этот скрипт отработает?  

    Когда высвечивается результат в заголовке показывает время за которое произошёл поиск:
    ;выводим результат
    _ArrayDisplay($Results, "Results (data only) in " & $Timer & " seconds")
    У меня справляется за 7 сек.

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 14:02 01-03-2011
    berkut9737



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kosjachok Спасибо!
     
    Добавлено:
    kosjachok, т.е., надо добавить эту функцию в аутолит? А потом писать скрипт?
     
    Добавлено:
    Простите, я только пару дней юзаю эту прогу.

    Всего записей: 1140 | Зарегистр. 05-04-2009 | Отправлено: 14:07 01-03-2011
    kosjachok



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    berkut9737
     
    1 Для использования функций которые идут в библиотеках (в папке Include Автоита) -  
    - вначале прописывается  
    #include <Array.au3>
    а потом используются функции из Array.au3, на данном примере -  
    _ArrayDisplay()  
    И кстати, открыв файл Array.au3 и найдя там функцию _ArrayDisplay() вы можете увидеть внутренности этой функции..

    2 для использования функций которые самописные -  
    сначала функцию нужно написать в конце кода в виде
    Func _NazvanieFunk($param, $param2,...)
         ;код функции
         Return $otvet
    EndFunc  
     
    А потом в коде уже её можно вызывать прописав  
    $otvet = _NazvanieFunk(1, 2,...)
     
    Вообще рекомендую посмотреть исходные коды уже готовых скриптов(коих слава богу валом) на сайте AutoIt Russian Community - Русское сообщество AutoIt на котором очень отзывчивый и дружелюбный коллектив, и там решено уже 99,9% проблем...

    Всего записей: 689 | Зарегистр. 18-08-2004 | Отправлено: 14:40 01-03-2011 | Исправлено: kosjachok, 14:45 01-03-2011
       

    Страницы: 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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум 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