Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Помогите чайнику в написании скрипта на автоустановку программы. (http://forum.oszone.net/showthread.php?t=207704)

Chudmin 27-05-2011 19:01 1683828

Помогите чайнику в написании скрипта на автоустановку программы.
 
Здравствуйте, всем! Уважаемые гуру, подскажите пожалуйста чайнику, который только-только начинает изучать 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 1683859

Цитата:

Цитата Chudmin
Программа AutoIT стоит 3й версии »

3-яя версия может означать многое, от версий 3.0.x и до текущей (3.3.6.1), было сделано множество изменений.

Цитата:

Цитата Chudmin
Прошу помощи-разъяснения »

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

Chudmin 27-05-2011 21:54 1683887

Цитата:

Цитата Creat0R
3-яя версия может означать многое, от версий 3.0.x и до текущей (3.3.6.1), было сделано множество изменений. »

Версия у мну - 3.3.6.1


Цитата:

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

Понял направление, пошёл туда, куда вы меня послали - буду разбираться с WinWait и с WinWaitVisible.

embers 28-07-2011 13:06 1721512

та же проблема, не могу понять, выдаёт в конце ошибку. причём тут визибл или актив я вообще не понимаю. разъясните


Время: 13:45.

Время: 13:45.
© OSzone.net 2001-