воскресенье, 23 августа 2009 г.

Вот для чего нужен этот AutoIt

Вчера вечером пытался обновить прошивку телефона.
У Nokia есть софтинка "Nokia Software Updater"
Она, проверяет подключен ли телефон, затем ищет обновление для телефона, следующий шаг проверяет состояние батареи, а уж потом только меняет прошивку.
Так вот воткнул я зарядку, подключил телефон через кабель, опознал его в компе. Запустил программулину. Опознала она мой телефон, нашла обновления, проверила заряд и говорит "подожди те пару минут и повторите снова". Подождал немного, снова тоже самое. И так наверно раз 5 прошло. И вот тут то меня и осенило "Вот для чего нужен этот AutoIt"

Пишу простой скрипт. Ничего нового по сравнению с предыдущим.

While True ; ставим бесконечный цикл
WinActivate("class:#32770") ; выводим окно сообщений на передний план
if (StringInStr (WinGetText("[CLASS:#32770]"), "Обновить") <> 0) Then ; если окно предлагает обновить прошивку
Send("{SPACE}") ; Ставим галочку на согласие что все данные сохранены
send("{TAB}"); Переходим на кнопку "Обновить"
Send("{Enter}"); Нажимаем кнопку
$Stop1 = false
while $Stop1 <> true ;циклим до тех пор пока не появится окно с сообщением что слабый заряд батареи
if (StringInStr (WinGetText("[CLASS:#32770]"), "Повторить") <> 0) Then ;Если появилось окно
Send("{Enter}"); жмём кнопку "Повторить"
$Stop1 = True; выходим из цикла
EndIf
WEnd
EndIf
WEnd

После запуска, проверил, что началась правильная работа.
Со спокойной душой пошёл спать.
Утром получил сообщение от "Nokia Software Updater", что обновление прошло успешно.

6 комментариев:

  1. и как... ты потом пришел, а софтина обновилась?

    ОтветитьУдалить
  2. а как узнать вот это class:#32770

    ОтветитьУдалить
  3. Когда вы устанавливаете AutoIt с ним устанавливается утилита AutoIt Window Info.
    Вот она то и показывает всю информацию об окне на котором сейчас находится курсор.

    ОтветитьУдалить
  4. "а как узнать вот это class:#32770"
    Это класс, всех диалоговых окон в Windows.

    ОтветитьУдалить
  5. Когда устанавливается Autoit v3. Вместе с ней устанавливается Autoit v3 Window Info.

    Там на вкладке Window есть строка Class, которая и показывает какой класс у данного окна.
    Уверен на 90% что да это класс всех диалоговых окон в Windows

    ОтветитьУдалить