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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    stas274
    Конкретно: с поиском файлов проблем нет, можно в массив получить функцией RecFileListToArray или обработать в цикле функцией от NIKZZZZ.
    Далее поискать конвертор работающий с ком-строкой, чтоб в цикле передавать ему пути файлов и параметры размера и формата BMP. Далее читаем файл BMP-миниатюру в переменную и проверяем половину начала файла, пропуская "шапку" файла. Формат BMP-файла можно посмотреть здесь и здесь.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 08:48 27-06-2011
    stas274

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, спасибо. Правда конвертировать каждое изображение мне показалось медленным. В итоге как-то сумел отыскать библиотеку FreeImage, которая помогла прочесть сразу png. А вот за функцию чтения списка файлов в массив спасибо. Я раньше пытался делать с помощью FileFindNextFile, но получался какой-то совершенно случайный порядок файлов. Правда я не подумал, что можно было просто добавить названия в массив и отсортировать его.

    Всего записей: 116 | Зарегистр. 14-11-2006 | Отправлено: 20:35 28-06-2011
    Mike1978

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите. Делаю скрипт, на гуе которого присутствуют только две метки (текстовые пояснения о проходящем этапе). Гуя должна реагировать на клавишу Esc - это выход из скрипта, и на все остальные клавиши одинаково - это переход к следующему этапу выполнения скрипта.
    С Esc все понятно - в цикле отслеживаем $GUI_EVENT_CLOSE, но вот как быть с нажатиями на все остальные клавиши??

    Всего записей: 76 | Зарегистр. 02-09-2003 | Отправлено: 21:04 28-06-2011
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем, привет.
    Решил познакомиться с автоматизацией в окошках на прмиере задачки в браузере.
    Пробую присмотреться к AutoIt.
    Задача почистить 10000 писем в почтовом ящике провайдера. Интерфейс муторный и медленный - думаю самое место для автоматизации.
    Насколько удалось понять работа с браузерами выглядит прмиерно так:
    IE - через COM
    Все остальные двиганьем мышки по экрану.
    Прошу сильно не ругаться, я талько пробую и многое могу недопонимать и пропускать.
     
    нашёл вот такой пример:

    Код:
     
    $oOMUrl =_IECreate("https://www.mail.url/");opens the webpage
    ; get pointers to the login form and username, password and signin fields
    $o_login = _IEGetObjByName($oOMUrl,"tbUser")
    _IEFormElementSetValue ($o_login, "username")
    $o_password = _IEGetObjByName($oOMUrl,"tbPassword")
    _IEFormElementSetValue ($o_password, "*****")
    $o_signin=_IEGetObjByName($oOMUrl,"bnLogin")
    _IEAction($o_signin,"click")
    Sleep(4000)
     

    и успешно залогинился.
    теперь последовательность шагов такая:
    1. Логинимся - разобрался
    2. Выбираем из dropdown показ по 100 писем и жмём кнопку по применению.
       

    Код:
     
    $oMbUrl = ("https://www.mail.url/MailBox.aspx")
    $oForm = _IEFormGetObjByName($oMbUrl, "ddlPerPage")
    $oMsg = _IEFormElementGetObjByName($oForm, 100)
    _IEFormElementSetValue ($oForm, "100")
    ;_IEFormSubmit ($oForm)
    ;$o_rpp=_IEGetObjByName($oOMUrl,"bnPerPage")
    ;_IEAction($o_rpp,"click")
     

    у меня этот код не хочет работать
     
     
    теперь работать нужно в цикле:
    3. Жмём кнопуку выделить все (vximg5tbVox)
    4. Жмём удалить(vximg2tbVox) и следом ещё раз удалить(vximg20tbVox).
    5. Снова жмём кнопуку выделить все (vximg5tbVox)
    6. Жмём удалить(vximg2tbVox) и следом очистить корзину(vximg21tbVox).
    Возвращаемся к началу цикла, пока писем в ящике не будет.
    Только у меня сложилось впечатление что там кнопки непростые и срабатывает js код, а названия элементов что я привёл есть картинки.
       
     
    Как можно поступить в таком случае ?
     
    Спасибо.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 22:26 28-06-2011 | Исправлено: slech, 22:27 28-06-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    slech
    Не обязательно для удаления писем выходить на сайт, достаточно отправить запрос почтовому серверу. Посмотри скрипт mail_del_spam, сделаный на основе UDF от snoitaleR.


    Сделал утилитку конвертирования AU3 в BBCode, которая использует SciTE в качестве движка конвертирующего в HTML и далее теги заменяются на BBCode. Такой вариант очень быстро работает, кроме того SciTE может экспортировать любой файл, а значит не обязательно ограничиваться AU3, поэтому добавил темы для CMD/BAT и REG/INI.
    Также обновил линейку


    Mike1978
    Если выполнение последовательное, то можно использовать режим GUIOnEventMode и назначить функции кнопкам используя GUICtrlSetOnEvent. Можно опрашивать события в цикле используя GUIGetMsg, примеры в справке в разделе GUI.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 02:11 29-06-2011 | Исправлено: AZJIO, 02:26 29-06-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос: TrayOnEventMode и GUIOnEventMode вместе не работают?
    Сделал тестовый пример, в котором кнопка в гуи отказывается работать.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 12:45 04-07-2011 | Исправлено: AZJIO, 12:47 04-07-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 12:45 04-07-2011
    Цитата:
    кнопка в гуи отказывается работать.

    Ты путаешь GUISetOnEvent с GUICtrlSetOnEvent .

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 12:52 04-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    С толку сбила команда GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit1")

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 19:25 04-07-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 19:25 04-07-2011
    Цитата:
    С толку сбила команда GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit1")

    Бывает, у меня тоже такое пару раз было.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 19:49 04-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал новую утилитку forum для проверки новых сообщений в указанных темах на форуме ru-board. Утилита через указанный интервал времени закачивает страничку и проверяет номер сообщения, если он увеличился, то меняет иконку в трее показывая число новых сообщений. Из окна просмотра можно перейти к сообщению. В настройках можно включить оповещение звуковое и всплывающую подсказку.
    Хотел добавить поддержку oszone.net, но там не понятно как переходить к последнему сообщению, если только усложнить парсинг номеров страниц.

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 14:07 05-07-2011
    Цитата:
    Утилита через указанный интервал времени закачивает страничку и проверяет номер сообщения, если он увеличился, то меняет иконку в трее показывая число новых сообщений. Из окна просмотра можно перейти к сообщению.

    Было бы очень полезно если бы имелась возможность игнорировать сообщения от определённых пользователей. Например чтобы не видеть обновления после отправки своего сообщения
     

    Цитата:
    Хотел добавить поддержку oszone.net, но там не понятно как переходить к последнему сообщению

    Последнему сообщению где?
    Есть возможность для определённой темы («http://forum.oszone.net/newpostinthread-210543.html»), пусть скрипт проверяет новые темы на форуме, и переходить к последнему сообщению в новой теме.
     
    Добавлено:
    P.S
    Последнее сообщение в разделе можно найти тут (внизу у раздела AutoIt, под колонкой Последнее сообщение.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:10 05-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добавил в шапку
  • Стили элементов управления
     
  • API-Guide 3.7 Справочник 925 функций, англ. яз. в виде программы EXE, русификатор
  • API-Viewer 2004, англ. яз. в виде программы EXE, русификатор
  • Справочнник по функциям Windows API от Дэниэла Эпплмана , англ. яз.
  • Недокументированные функиии Windows API, Синтаксис C (не VB!)
     
    ViSiToR

    Цитата:
    Есть возможность для определённой темы
    да, именно это мне и нужно.

    Цитата:
    пусть скрипт проверяет новые темы на форуме, и переходить к последнему сообщению в новой теме.
    я уже для одного форума такое сделал, слежение за страничкой "активные темы", следит за появлением новых тем и тем в которых добавились сообщения. Жаль универсального способа нет, везде какие нибудь индивидуальные заморочки, приходится изменять регулярное выражение, размерность возвращаемого массива, индексы колонок и прочие нюансы и всязи с этим, пол утилиты переписывать.

    Цитата:
    чтобы не видеть обновления после отправки своего сообщения  
    учту в следующий раз. Ещё думал о зарезервировании 10-ти AdlibRegister, а в параметрах ссылки указывать индивидуальное время опроса. А то некоторые темы достаточно раз в сутки проверить другие каждые пол-часа обновляются.

  • Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 06:38 06-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил утилитку forum до версии 0.3 (обновлено по 10-ти пунктам)

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 21:19 07-07-2011
    AZJIO



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

    Цитата:
    пусть скрипт проверяет новые темы на форуме, и переходить к последнему сообщению в новой теме.

    Сделал для форума oszone (в комплекте с forum)
     
    У меня сейчас не получается в утилиту forum_ruboard.exe добавить объект браузера, чтоб закаченную страничку не загружать повторно, а смотреть уже закачанный кэш. То есть я попробовал два варианта, но этот объект браузера как то странно себя ведёт. Если хочешь посмотри. Там один вариант - создание нового окна, второй вариант - попытка скрыть ListView и вместо него показать объект браузера. Оба варианта глючат.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 10:10 08-07-2011 | Исправлено: AZJIO, 14:36 11-07-2011
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос к специалистам.
    Необходимо запустить по-очереди два исполняемых файла. Проблема в том, что один из них является самораспаковывающимся архивом, который после извлечения запускает на установку некоторую программу. Вот как раз после ее (программы) закрытия и нужно запустить следующий файл. Соответственно, функция ShellExecuteWait не работает. Есть какие идеи как отследить завершение выполнения программы из архива?  
    Сразу оговорюсь, что поиск по названию процесса или заголовку окна не подойдет.

    Всего записей: 3265 | Зарегистр. 30-05-2007 | Отправлено: 00:06 13-07-2011 | Исправлено: Zloy_Gelud, 00:09 13-07-2011
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zloy_Gelud, избавтесь от архива. Пусть автоит извлекает эти файлы из себя.

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 01:01 13-07-2011
    AutoIT



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте форумчане.
    Вопрос краток - Почему класс AutoItX3Class не хочет интегрироваться в .NET FW4 (VS2010, C#), хотя в версии 3,5 и младше интегрируется без проблем, может быть есть хитрости (тонкости) в использовании? Ошибка возникает следующая: Внедрение типа взаимодействия "AutoItX3Lib.AutoItX3Class" невозможно. Используйте вместо него доступный интерфейс.

    Всего записей: 77 | Зарегистр. 04-12-2008 | Отправлено: 09:57 13-07-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил утилиту поиска по страничке "Версия для печати". Теперь можно искать по автору или исключить авторов поста. Вывод результата в виде странички с избранными постами, искомый текст выделен цветом, а также ссылка на переход в тему.
     
    При компиляции на версии 3.3.7.10 и 3.3.7.14 результаты поиска не отображаются, на версии 3.3.6.1 всё нормально. Сравнил IE.au3 от разных версий, есть небольшие изменения, но подмена старой версии не дала положительного результата.

    Всего записей: 4407 | Зарегистр. 03-05-2006 | Отправлено: 02:18 15-07-2011 | Исправлено: AZJIO, 00:27 16-07-2011
    SunkaZlo



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хм. Пока писал - ещё один вопрос возник. Начну с него. Почему не работает:

    Код:
    Run("C:\WINDOWS\system32\cmd.exe");
    WinWaitActive("C:\WINDOWS\system32\cmd.exe");
    Send ("ping localhost -n 1000 {ENTER}");
    Sleep (1000);
    Send ("^c");

    Пинг не прерывается. Т.е. не посылается Ctrl+C
     
    А теперь основной вопрос. Что хочется:
    1. Открыть программу
    2. Послать ей сочетания. Подряд. Кол-во: 2 штуки
    3. И только сейчас показать окно программы.

    Всего записей: 258 | Зарегистр. 04-03-2010 | Отправлено: 19:57 18-07-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    SunkaZlo 19:57 18-07-2011
    Цитата:
    Пинг не прерывается

    Ну так ты посылаешь 1000 пингов, прервётся после того как они все отработают

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 20:07 18-07-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