Короче, обошел я эту гадость с одинаковыми окнами (они оказались абсолютно одинаковы даже для 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 нельзя работать с элементами:
Пример первого - выбор компонент в установщике
WinAmp
Пример последнего - выбор компонент в установщиках
K-Lite Codec Pack
(по идее, можно применить
silent.inf файл, но у меня параметр
components=... игнорируется напрочь)