Учебник по автоматической установке Windows XP

       

Вввод данных / работа с элементами управления


  • Посылка символов в активный элемент активного окна

    ;дожидаемся активности окна RivaTuner с текстом Choose Install Location

    WinWaitActive('RivaTuner','Choose Install Location')

    ;изменение пути уcтановки RivaTuner со стандартного на @ProgramFilesDir&'\RivaTuner'

    Send(@ProgramFilesDir & '\RivaTuner')

  • Посылка символов непосредственно в текстовое поле

    ControlSetText('RivaTuner','Choose Install Location','Edit1',@ProgramFilesDir & '\RivaTuner')

    ;или

    ControlSend('RivaTuner','Choose Install Location','Edit1',@ProgramFilesDir & '\RivaTuner')

  • Каракули вместо русских буковок

    Проверьте, чтобы текстовый файлик скрипта (au3) был в ANSI (Win-1251) кодировке.

  • Клацанье по кнопкам, чекбоксам, выбор строки комбобокса и т.п.

    ;нажать кнопку Button4, в окне установки Winamp, содержащем текст Interface and Skin Selection

    ControlClick('Winamp','Interface and Skin Selection','Button4') ;выбрать radiobutton с текстом I &accept the agreement, в окне установки Everest, содержащем текст License Agreement

    ControlCommand('Setup','License Agreement','I &accept the agreement','Check','') ;выбрать строку Full Install из выпадающего списка ComboBox1 в окне установки FLY 2000 TV, содержащем текст Выберите тип установки

    ControlCommand('FLY 2000 TV','Выберите тип установки','ComboBox1','SelectString','Full Install')

  • Как кликнуть по скрытой кнопке (Control is hidden)

    По идее, сначала нужно эту кнопку сделать видимой - ControlShow("title","text",controlID), но, довольно часто после применения этой ф-ции, клик на кнопке при помощи ControlClick("title","text",controlID) не проходит. В этом сл., спасением станет MouseClick("left",x,y,1).

    Как точно попасть MouseClick-ом в нужную кнопку не зная разрешения экрана.

    При написании скрипта используйте привязку координат к клиентской части активного окна. Т.е., когда Вы (используя "AutoIt Window Info") смотрите координаты кнопки, выставьте Options -> Coord Mode -> Client. А в скрипте (перед MouseClock-ом) задайте:


    ; 1 - привязка к левому верхнему углу экрана (по ум.)

    ; 0 - привязка к активному окну

    ; 2 - привязка к клиентской части активного окна (все то, что ниже заголовка)

    Opt("MouseCoordMode",2)

  • Имя эл-та управления может изменяться от запуска к запуску программы (скажем, был "Button3", а в след раз стал "Button2") - имейте это ввиду. Решением в подобных ситациях может стать обращение к эл-ту управления по его содержимому (Text), а не имени класса (ClassNameNN) или ControlID.

    ;фрагмент информационного окна AutoIt Window Info:

    Control ID: 1

    ClassNameNN: Button2

    Text: &Next > Ну, а если Вы предварительно убедитесь в активности окна с пом. WinWaitActive, то нажать на кнопку по умолчанию всегда можно банальным Send('{ENTER}'). Т.e. клацнуть по этому батону :) можно 4 способами:

    ControlClick('HyperSnap','',1)

    ControlClick('HyperSnap','','Button2')

    ControlClick('HyperSnap','','&Next >')

    Send('{ENTER}') Есть еще один способ - через указатели, но для получения указателя все равно сначала нужно идентифицировать эл-т управления по одному их трех признаков.



  • Содержание раздела