Что нового

Установка Office 2010 средствами autoit

c-n1x

Новичок
Сообщения
26
Репутация
1
Возникла проблема при установке офиса 2010.
Дело в том, что опциональный текст окна при установки не меняется и окно все время активно.
Суть в том, что мне после установки необходимо закрыть последнее окно.

Код:
Run("\\main\Inst_\Office 2010\RUS 32bit\setup.exe")
                     WinWaitActive("Microsoft Office стандартный 2010", "ВНИМАНИЕ!")
                     send("{SPACE}")
					 send("{ENTER}")
                     sleep(3000)
                     WinWaitActive("Microsoft Office стандартный 2010")
                     send("{ENTER}")
                     WinWaitActive("Microsoft Office стандартный 2010", "ВНИМАНИЕ!")
                     send("{ENTER}")   ;  вот этот сенд пролетает, как я понимаю, намного раньше. контролкликом не вариант пользоваться, так как афтоит инфо не показывает на кнопке закрыть ничего.


Кто ставил, как справлялись?
 

Pavel

Новичок
Сообщения
125
Репутация
3
Понимаю, что указываю решение проблемы не средствами Autoit... но когда есть наиболее оптимальный путь, помоему это разумно :smile:
http://winreview.ru/news.php?extend.576
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Нет возможности экспериментов с MSO 2010, но
попробуй с задержками:
Код:
Run("\\main\Inst_\Office 2010\RUS 32bit\setup.exe")
WinWaitActive("Microsoft Office стандартный 2010", "ВНИМАНИЕ!")
sleep(1000)
send("{SPACE}")
sleep(1000)
send("{ENTER}")
sleep(3000)
WinWaitActive("Microsoft Office стандартный 2010")
sleep(1000)
send("{ENTER}")
sleep(1000)
WinWaitActive("Microsoft Office стандартный 2010", "ВНИМАНИЕ!")
sleep(1000)
send("{ENTER}")
 
Автор
C

c-n1x

Новичок
Сообщения
26
Репутация
1
C задержками не вариант, так как поцесс установки идет довольно продолжительно, толку что я остановлю на 3 секунды выполнение скрипта
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
c-n1x
sleep после WinWaitActive нужен для того чтобы полностью стали активны все элементы окна ( я его применяю в этом смысле. )если не срабатывает, значит увеличиваю время ожидания.
если использовать send то после WinWaitActive для фокусировки можно добавить WinActivate . мало ли какие процессы могут происходить в системе. и при этом фокусировка может теряться , а значит не срабатывать send.
еще как вариант - требуется нажатие определенной клавиши ( к примеру пробела)
либо кликать мышью используя координаты расположения кнопки.
 
Автор
C

c-n1x

Новичок
Сообщения
26
Репутация
1
Это вариант не подходит, так как элементы окна почему то не определяются через информер, соответственно получается что эти элементы окан не активны, даже когда активны, тоесть состояние окна установки идентично окну завершения установки.
Единственно что мог сделать так это через развертывание офиса, тихую установку, но как сделать так что бы скрипт хнал когда установка офиса закончиться и продолжать ставить следующее ПО?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
c-n1x [?]
но как сделать так что бы скрипт хнал когда установка офиса закончиться и продолжать ставить следующее ПО?
установкой управляют два процесса(как мне помнится). скрипт проверяет и следит за тем, когда процессы установки окончатся, после этого продолжение установки остального софта
 
Автор
C

c-n1x

Новичок
Сообщения
26
Репутация
1
В общем решил проблему так.

Сначала сделал файл ответов и вопросов через setup.exe /admin , тоесть тихую установку без подтверждения завершения, но с показом окон, чтобы видно было что ПО ставится а не висит.

а в скрипт поместил такой код, во все следующие за офисом программы.

Код:
While 1
    Switch @SEC
        Case '00', '5', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55'  
           If Not ProcessExists('setup.exe') Then       
               Run('setupprog.exe')            
                ExitLoop              
           EndIf
    EndSwitch
    Sleep(5000)
WEnd
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
c-n1x

{CodeWarn}
 
Верх