Ищу Человека…
Сообщения: 420
Благодарности: 67
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
bogomolv
Цитата:
можно оперировать вводом-выводом, и не активируя соответствующие окна
|
Спрашивали не об этом - я отвечал на прямой вопрос.
А о том, что ты говоришь - я знаю, но без активации оно не всегда должным образом работает
Да, ты мне напомнил - я пару месяцев назад для знакомого делал автоустановку ABBYY FineReader 7.
Выкладываю для народа:
Код:
AutoItSetOption("TrayIconHide", 1)
BlockInput ( 1 )
Global $InstPath, $Serial, $InstID, $FFCode, $ActCode, $ACStr
AutoItSetOption ( "SendKeyDelay", 20 )
;запуск кейгена
Run ( 'keygen.exe' )
WinWaitActive ( 'Abbyy FineReader Professional v7.0 keygen' )
;страна - UA (для RU - удалить один ControlClick)
ControlClick ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Button3' )
ControlClick ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Button3' )
ControlClick ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Button3' )
ControlClick ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Button3' )
Sleep ( 600 )
$Serial = ControlGetText ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Edit1' )
Sleep ( 70 )
;установка программы
Run ( 'setup.exe /L1049' )
WinWait ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Лицензионный договор' )
WinActivate ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Лицензионный договор' )
ControlCommand ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Лицензионный договор', 'Я &принимаю условия лицензионного договора', "Check", "" )
Send ( '{ENTER}' )
WinWait ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Режим установки' )
WinActivate ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Режим установки' )
$InstPath = ControlGetText ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Режим установки', 'RichEdit20W1' )
;по ум., путь = C:\Program Files\ABBYY FineReader 7.0 Professional Edition\
Выборочная установка. Выбрана только для подключения еще и англ. языка интерфейса - мужик хотел совсем "полную" установку.
Кому нужно, на этом этапе можно отключить FormFiller (после получения фокуса элементом SysTreeView321 нажать {DOWN 5}, !{DOWN}, {UP} и {ENTER} ).
Для обычной установки сразу жать Button1 и идти к STD
ControlClick ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Режим установки', 'Button5' )
;Далее
ControlClick ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Режим установки', 'Button1' )
WinWait ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Выборочная установка' )
WinActivate ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Выборочная установка' )
ControlFocus ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Выборочная установка', 'SysTreeView321' )
Send ( '{DOWN}' )
Send ( '{RIGHT}' )
Send ( '{DOWN}' )
Send ( '!{DOWN}' )
Send ( '{DOWN}' )
Send ( '{ENTER}' )
Sleep ( 70 )
;Далее
Send ( '{ENTER}' )
;STD
WinWaitActive ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Подключение к каналу новостей ABBYY' )
ControlCommand ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Подключение к каналу новостей ABBYY', 'H&ет', "Check", "" )
Sleep ( 50 )
Send ( '{ENTER}' )
WinWaitActive ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Установка программы' )
Send ( '{ENTER}' )
WinWaitActive ( 'ABBYY FineReader 7.0 Professional Edition - ', 'Установка ABBYY FineReader 7.0 завершена' )
Send ( '{ENTER}' )
Sleep ( 50 )
;регистрация программы
Run ( $InstPath & 'FineReader.exe' )
WinWaitActive ( 'ABBYY FineReader 7.0 Professional Edition Try&Buy', 'Вы работаете с испытательной версией программы' )
ControlCommand ( 'ABBYY FineReader 7.0 Professional Edition Try&Buy', 'Вы работаете с испытательной версией программы', '&Ввести серийный номер', "Check", "" )
Send ( '{ENTER}' )
WinWaitActive ( 'ABBYY FineReader 7.0 Professional Edition Try&Buy', '&Введите серийный номер' )
ControlSetText ( 'ABBYY FineReader 7.0 Professional Edition Try&Buy', '&Введите серийный номер', 'Edit1', $Serial )
Send ( '{ENTER}' )
WinWaitActive ( 'Мастер Активации ABBYY FineReader 7.0 Professional Edition', 'Мастер активации последовательно проведет Вас по всему процессу' )
ControlCommand ( 'Мастер Активации ABBYY FineReader 7.0 Professional Edition', 'Мастер активации последовательно проведет Вас по всему процессу','по &факсу или телефону', "Check", "" )
Send ( '{ENTER}' )
WinWaitActive ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону' )
;для России Ukraine замените на Russia
ControlCommand ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'ComboBox1', "SelectString", 'Ukraine' )
$InstID = ControlGetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit2' )
;переход в окно кейгена
WinActivate ( 'Abbyy FineReader Professional v7.0 keygen' )
Sleep ( 30 )
ControlSetText ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Edit3', $InstID )
Sleep ( 70 )
;Generate
ControlClick ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Button8' )
Sleep ( 50 )
$FFCode = ControlGetText ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Edit2' )
$ActCode = ControlGetText ( 'Abbyy FineReader Professional v7.0 keygen', '', 'Edit4' )
Sleep ( 50 )
WinClose ( 'Abbyy FineReader Professional v7.0 keygen' )
WinWaitClose ( 'Abbyy FineReader Professional v7.0 keygen' )
Sleep ( 20 )
WinActivate ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону' )
;из кейгена код получен одной строкой вида x-x-x..., а вводить нужно по частям в разные поля - разделяем.
$ACStr = StringSplit ( $ActCode, "-" )
Sleep ( 350 )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit4', $ACStr[1] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit5', $ACStr[2] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit6', $ACStr[3] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit7', $ACStr[4] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit8', $ACStr[5] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit9', $ACStr[6] )
ControlSetText ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация по факсу или телефону', 'Edit10', $ACStr[7] )
Sleep ( 30 )
Send ( '{ENTER}' )
WinWaitActive ( 'Мастер активации ABBYY FineReader 7.0 Professional Edition', 'Активация успешно завершена' )
Send ( '{ENTER}' )
Sleep ( 500 )
;это окно иногда появляется, а иногда нет.
(Тестил и на VMWare и на 2 реальных ПК - закономерности найти не пытался, а просто впаял эту проверку. Работает... и ладушки.)
If WinExists ( 'Регистрация FineReader 7.0 Professional Edition', 'Пожалуйста' ) Then
WinActivate ( 'Регистрация FineReader 7.0 Professional Edition', 'Пожалуйста' )
Send ( '{SPACE}' )
ControlClick ( 'Регистрация FineReader 7.0 Professional Edition', 'Пожалуйста', 'Button4' )
WinWaitActive ( 'Регистрация', 'Внимание!' )
Send ( '{ENTER}' )
EndIf
WinWait ( 'Добро пожаловать!' )
WinActivate ( 'Добро пожаловать!' )
;&Закрыть
ControlClick ( 'Добро пожаловать!', '', 'Button5' )
;активировать и закрыть основное окно программы
WinActivate ( 'Пакет без имени - ABBYY FineReader 7.0 Professional Edition' )
WinClose ( 'Пакет без имени - ABBYY FineReader 7.0 Professional Edition' )
WinWaitClose ( 'Пакет без имени - ABBYY FineReader 7.0 Professional Edition' )
Sleep ( 50 )
;активация FormFiller-а
Run ( $InstPath & 'FormFiller.exe' )
WinWaitActive ( 'Активация' )
ControlSetText ( 'Активация', '', 'Edit1', $FFCode )
Sleep ( 70 )
;&Активация
ControlClick ( 'Активация', '', 'Button1' )
WinWait ( 'Форма - ABBYY FormFiller' )
WinActivate ( 'Форма - ABBYY FormFiller' )
WinClose ( 'Форма - ABBYY FormFiller' )
WinWaitClose ( 'Форма - ABBYY FormFiller' )
Sleep ( 20 )
;перенос ярлыков
DirCopy ( @ProgramsCommonDir & '\ABBYY FineReader 7.0', @ProgramsCommonDir & '\Офис\ABBYY FineReader 7.0', 1 )
DirRemove ( @ProgramsCommonDir & '\ABBYY FineReader 7.0', 1 )
;Поддержка украинского языка для FineReader 7.0
;(пакет перепакован в winrar-sfx архив для тихой установки)
;команды SFX-сценария (для winrar-архива):
; Setup=setup.exe /L1049
; TempMode
; Silent=1
; Overwrite=1
RunWait ( 'ukr.exe' )
$FFCode = 0
$InstPath = 0
$Serial = 0
$InstID = 0
$ActCode = 0
$ACStr = 0
BlockInput ( 0 )
P.S. Возможно, здесь не все оптимально, но работает без проблем.
Сама прога бралась отсюда (43 749 965 байт)
Укр. язык (1 639 936 байт) - может кому и нужен
|