Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Sanja Alone

Ищу Человека…


Сообщения: 420
Благодарности: 67

Профиль | Сайт | Отправить PM | Цитировать


Короче, обошел я эту гадость с одинаковыми окнами (они оказались абсолютно одинаковы даже для AutoIt Window Info).
Обошел опять не совсем правильно, но влазить в функции с указателями мне не хотелось (уж сильно мутно):

Код: Выделить весь код
...
Run ( '"' & @ProgramFilesDir & '\Sonic Foundry\Sound Forge 6.0\forge60.exe" ' & EnvGet('systemdrive') & '\install\test.mpg' )
WinWaitActive ( 'Sonic Foundry Sound Forge 6.0', 'Purchase...' )
Send ( '{ENTER}' )
WinWaitActive ( 'Sonic Foundry - MPEG Plug-In' )
MouseClick( "left", 400, 340, 1, 0 )
WinWaitActive ( 'Sonic Foundry' )
;переименовываем окно, чтобы скрипт не завис
WinSetTitle ( 'Sonic Foundry', '', "SF" )
WinWaitActive ( 'SF' )
MouseClick( "left", 120, 240, 1, 0 )
;это окно - причина переименования предыдущего, т.к. окна по ВСЕМ параметрам идентичны (AutoIt Window Info)
WinWaitActive( 'Sonic Foundry' )
;активизируем поле ввода серийника (через ControlSetText к полю не достучаться - его не видно)
MouseClick( "left", 100, 273, 1, 0 )
;3-й шаг регистрации "MainConcept MPEG-1&2 Pro Plug-In" - вводим серийник
Send ( $Serial2 )
Send ( '{ENTER}' )
WinWaitActive ( 'MainConcept MPEG-1,2 Pro Plug-In', 'Thank you for purchasing' )
Send ( '{ENTER}' )
WinWaitClose ( 'MainConcept MPEG-1,2 Pro Plug-In', 'Thank you for purchasing' )
;дожидаемся окна Sound Forge, чтобы сохранились данные регистрации
WinWaitActive ( 'Sonic Foundry Sound Forge 6.0' )
;здесь (при нормальном закрытии Sound Forge с пом. WinClose) происходит крит.ошибка, 
;поэтому просто убиваем процесс (все рег. данные уже сохранены)
;(для красоты спрячем процесс убийства с пом. флага @SW_HIDE)
RunWait ( 'taskkill.exe /F /IM forge60.exe', '', @SW_HIDE )
Sleep ( 1000 )
;снимаем блокировку мыши и клавы
BlockInput ( 0 )
Жаль, что в новой версии AutoIt нельзя работать с элементами:
  • TreeView
  • CheckListBox
Пример первого - выбор компонент в установщике WinAmp
Пример последнего - выбор компонент в установщиках K-Lite Codec Pack
(по идее, можно применить silent.inf файл, но у меня параметр components=... игнорируется напрочь)

Отправлено: 02:27, 24-03-2005 | #15