Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Рекурсия в компилированном скрипте

Ответить
Настройки темы
[решено] Рекурсия в компилированном скрипте

Аватара для Cuba

Пользователь


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


Написал скрипт установки Alcohol 120 %
Скрипт работает если запустить из контекстного меню (Run script)
Компилирую его, запускаю и он начинает запускаться бесконечно.
Т.е. открывается копия этого же компилированного скрипта бесконечно, комп тормозить начинает, спасает перезагрузка компа.
Это что за прикол такой ?
Вот скрипт:
PHP код: Выделить весь код

#cs ----------------------------------------------------------------------------


 
AutoIt Version3.3.0.0
 Author
:         JoKeR

 Script 
Function:
    
Alcohol setup

#ce ----------------------------------------------------------------------------

Run("ALCOHOL - 120% 5.0 BLU-RAY.exe")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]","Alcohol 120% wurde auf Ihrem Computer installiert")
ControlClick("[CLASS:#32770]","","Button4")
ControlClick("[CLASS:#32770]","","Button5")
ControlClick("[CLASS:#32770]","","Button2")

Run("C:\Program Files\Alcohol Soft\Alcohol 120\Alcohol.exe")

WinWait("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")
ControlClick("[CLASS:TAboutDlg]","","TButton2")
Send("+a+d+e-+y798-O+c3+b-+f834-17+d0")

WinWait("[CLASS:TForm;TITLE:Регистрация]")
ControlClick("[CLASS:TForm]","","TButton1")

WinWait("[CLASS:#32770;TITLE:Регистрация]","Серийный номер принят")
ControlClick("[CLASS:#32770]","","Button1")

WinWait("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")
WinClose("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")

WinWait("[CLASS:TMainFrame;TITLE:Alcohol 120%]")
WinClose("[CLASS:TMainFrame;TITLE:Alcohol 120%]"


Отправлено: 18:10, 17-04-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Cuba:
наверно не видит, что то окошко закрылось »
по ходу там класс окна сменился в новых версиях:
Код: Выделить весь код
; Ожидение появления окна обновления устройств
Do
Until ControlCommand("[CLASS:TWaitForSomethingDialog]", "", "[CLASS:TPanel; INSTANCE:1]", "IsVisible")
; Ожидение закрытия  окна обновления устройств
While ControlCommand("[CLASS:TWaitForSomethingDialog]", "", "[CLASS:TPanel; INSTANCE:1]", "IsVisible")
    Sleep(100)
WEnd
на всякий случай отладочный вариант:
Код: Выделить весь код
$WinTitle="[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]"

WinWait($WinTitle)
ConsoleWrite('Window activated: "'& $WinTitle &'"' &@CRLF)
WinClose($WinTitle)
ConsoleWrite('Window    closed: "'& $WinTitle &'"' &@CRLF)

$WinTitle="[CLASS:TWaitForSomethingDialog]"
$WinCntrl="[CLASS:TPanel; INSTANCE:1]"
; Ожидение появления окна обновления устройств
Do
    $IsVisible = ControlCommand($WinTitle, "", $WinCntrl, "IsVisible")
    ConsoleWrite('Window control visible:'& $IsVisible &@CRLF)
Until $IsVisible
; Ожидение закрытия  окна обновления устройств
While $IsVisible
    Sleep(50)
    $IsVisible = ControlCommand($WinTitle, "", $WinCntrl, "IsVisible")
    ConsoleWrite('Window control visible:'& $IsVisible &@CRLF)
WEnd

$WinTitle="[CLASS:TMainFrame;TITLE:Alcohol 120%]"
$WinText ="Готов"

WinWait($WinTitle,$WinText)
ConsoleWrite('Window activated: "'& $WinTitle &'"' &@CRLF)
WinClose($WinTitle)
ConsoleWrite('Window    closed: "'& $WinTitle &'"' &@CRLF)
Цитата Cuba:
Никак не могу отловить его...
окошко вызывается по Shift+F5
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:27, 20-04-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Cuba

Пользователь


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


О, супер, теперь всё работает как нужно
Спасибо большое, amel27 и Creat0R, за помощь.
PHP код: Выделить весь код

#cs ----------------------------------------------------------------------------


 
AutoIt Version3.3.0.0
 Author
:         JoKeR

 Script 
Function:
    
Alcohol setup

#ce ----------------------------------------------------------------------------

Run("ALCOHOL - 120% 5.0 BLU-RAY.exe")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]")
ControlClick("[CLASS:#32770]","","Button2")

WinWait("[CLASS:#32770;TITLE:Alcohol 120% Version 5.0]","Alcohol 120% wurde auf Ihrem Computer installiert")
ControlClick("[CLASS:#32770]","","Button4")
ControlClick("[CLASS:#32770]","","Button5")
ControlClick("[CLASS:#32770]","","Button2")

Run("C:\Program Files\Alcohol Soft\Alcohol 120\Alcohol.exe")

WinWait("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")
ControlClick("[CLASS:TAboutDlg]","","TButton2")
Send("+a+d+e-+y798-O+c3+b-+f834-17+d0")

WinWait("[CLASS:TForm;TITLE:Регистрация]")
ControlClick("[CLASS:TForm]","","TButton1")

WinWait("[CLASS:#32770;TITLE:Регистрация]","Серийный номер принят")
ControlClick("[CLASS:#32770]","","Button1")

WinWait("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")
WinClose("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")

Do
Until ControlCommand("[CLASS:TWaitForSomethingDialog]""""[CLASS:TPanel; INSTANCE:1]""IsVisible")

While 
ControlCommand("[CLASS:TWaitForSomethingDialog]""""[CLASS:TPanel; INSTANCE:1]""IsVisible")
    
Sleep(100)
WEnd

WinWait
("[CLASS:TMainFrame;TITLE:Alcohol 120%]","Готов")
WinClose("[CLASS:TMainFrame;TITLE:Alcohol 120%]"

И вопрос на засыпку))
Можно с помощью AutoIt скрыть окна установки, чтобы было типа тихой установки ?
За пример можно данный скрипт взять.

Отправлено: 13:43, 20-04-2009 | #12


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Тематика тут начинает “уезжать” в неверном направлении, проблема была в рекурсивном запуске скрипта (и она вроде решена), а не в установке Alcohol.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:45, 20-04-2009 | #13


Аватара для Cuba

Пользователь


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


Тем не менее...
Желаю получить ответ на поставленный выше ответ.
Не создавать же отдельную тему если и тут можно разобраться.

Отправлено: 08:00, 21-04-2009 | #14


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Cuba:
Можно с помощью AutoIt скрыть окна установки, чтобы было типа тихой установки ? »
Скрыть можно, но не всегда будут реагировать на нажатие кнопок и т.п.
И подобный вопрос уже обсуждался.

Цитата Cuba:
Не создавать же отдельную тему если и тут можно разобраться »
Для этого и был отведён отдельный форум по AutoIt, чтобы не скапливать всё в кучу в одной теме.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 11:11, 21-04-2009 | #15


Аватара для Cuba

Пользователь


Сообщения: 58
Благодарности: 0

Профиль | Отправить PM | Цитировать


Понял, не дурак

Отправлено: 22:09, 21-04-2009 | #16



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Рекурсия в компилированном скрипте

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как реализовать в скрипте возможность автозаполнения evg64 AutoIt 5 03-10-2009 20:07
[решено] Шифрование пароля в скрипте. virgy Автоматическая установка Windows 2000/XP/2003 2 22-09-2009 18:05
[решено] Можно ли как-нибудь обрабатывать фатальные ошибки в скрипте? evg64 AutoIt 5 16-09-2009 22:58
Рекурсия в ПХП Vlad Drakula Вебмастеру 5 17-09-2004 20:31
рекурсия modem Защита компьютерных систем 1 06-03-2003 00:41




 
Переход