PDA

Показать полную графическую версию : Помогите чайнику в написании скрипта на автоустановку программы.


Chudmin
27-05-2011, 19:01
Здравствуйте, всем! Уважаемые гуру, подскажите пожалуйста чайнику, который только-только начинает изучать AutoIT - я пытаюсь написать скрипт для автоматической установки программы, например Dicter, почитав справку и в инете, соорудил скрипт вот такого содержания:

Run("DicterSetup.exe")

Запускается окно установщика и происходит нужное нажатие кнопок или снятие и установка галочек.

Пробелы между командами здесь сделал специально, для удобства чтения.

WinWaitActive("Установка — DICTER", "Программа установит DICTER")
ControlClick("Установка — DICTER", "", "TNewButton1")

WinWaitActive("Установка — DICTER", "Лицензионное Соглашение")
ControlClick("Установка — DICTER", "", "TNewRadioButton1")
ControlClick("Установка — DICTER", "", "TNewButton2")

WinWaitActive("Установка — DICTER", "Выбор компонент для установки")
ControlClick("Установка — DICTER", "", "TNewRadioButton1")
ControlClick("Установка — DICTER", "", "TNewCheckBox3")
ControlClick("Установка — DICTER", "", "TNewCheckBox2")
ControlClick("Установка — DICTER", "", "TNewCheckBox1")
ControlClick("Установка — DICTER", "", "TNewButton2")

WinWaitActive("Установка — DICTER", "Программа установит DICTER в следующую папку")
ControlClick("Установка — DICTER", "", "TNewButton3")

WinWaitActive("Установка — DICTER", "Программа создаст ярлыки в следующей папке")
ControlClick("Установка — DICTER", "", "TNewButton4")

WinWaitActive("Установка — DICTER", "Выберите дополнительные задачи")
ControlClick("Установка — DICTER", "", "TNewCheckListBox1")
ControlClick("Установка — DICTER", "", "TNewButton4")

WinWaitActive("Установка — DICTER", "Всё готово к установке")
ControlClick("Установка — DICTER", "", "TNewButton4")

Происходит установка программы и появляется окно завершения установки, вот тут-то и происходит "затык", вернее ничего не происходит, окно ждёт действия от меня или от кого-то ещё.

WinWaitActive("Установка — DICTER", "Завершение Мастера установки DICTER")
ControlClick("Установка — DICTER", "", "TNewCheckListBox1")
ControlClick("Установка — DICTER", "", "TNewButton4")

Что делаю не так или чего не делаю?

Программа AutoIT стоит 3й версии.

Вместо имитации нажатия мышью (ControlClick) пробовал имитацию нажатия клавиш клавы (Send) - результат точно такой же.

Такая же канитель и при установки других программ, например того же WinZip.

Прошу помощи-разъяснения.

Creat0R
27-05-2011, 20:21
Программа AutoIT стоит 3й версии »
3-яя версия может означать многое, от версий 3.0.x и до текущей (3.3.6.1), было сделано множество изменений.

Прошу помощи-разъяснения »
Разъяснение простое - WinWaitActive, как и полагается с её названия, ожидает активного окна, т.е окно должно быть на переднем плане, возможно установщик программы отображает окно в неактивном состояний, поэтому лучше использовать WinWait, а ещё лучше, поискать по форуму и использовать счамопальную функцию _WinWaitVisible (ожидание создания видимого окна, т.к WinWait ожидает созданное окно, вне зависимости от того, видимо оно или нет).

Chudmin
27-05-2011, 21:54
3-яя версия может означать многое, от версий 3.0.x и до текущей (3.3.6.1), было сделано множество изменений. »
Версия у мну - 3.3.6.1


Разъяснение простое - WinWaitActive, как и полагается с её названия, ожидает активного окна, т.е окно должно быть на переднем плане, возможно установщик программы отображает окно в неактивном состояний, поэтому лучше использовать WinWait, а ещё лучше, поискать по форуму и использовать счамопальную функцию _WinWaitVisible (ожидание создания видимого окна, т.к WinWait ожидает созданное окно, вне зависимости от того, видимо оно или нет). »
Понял направление, пошёл туда, куда вы меня послали - буду разбираться с WinWait и с WinWaitVisible.

embers
28-07-2011, 13:06
та же проблема, не могу понять, выдаёт в конце ошибку. причём тут визибл или актив я вообще не понимаю. разъясните




© OSzone.net 2001-2012