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

Компьютерный форум 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

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Cuba:
Компилирую его, запускаю и он начинает запускаться бесконечно »
А имя скрипта не «ALCOHOL - 120% 5.0 BLU-RAY.au3» случайно? После компилляции он становится точно таким же как и запускаемый софт, вот и получается что он запускает сам себя.

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

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

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


Отправлено: 20:24, 17-04-2009 | #2



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

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


Аватара для Cuba

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


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

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


Нет конечно
Имя Alcohol.exe

Отправлено: 01:56, 18-04-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата Cuba:
Имя Alcohol.exe »
Ясно, ну тогда это очевидно, что Run() определяет первую часть (до пробела) как имя файла (в нашем случае это ALCOHOL, т.е имя скрипта), а остальное как параметры ком. строки, можно попробовать так решить проблему:

Код: Выделить весь код
#cs ---------------------------------------------------------------------------- 

 AutoIt Version: 3.3.0.0 
 Author:         JoKeR 

 Script Function: 
    Alcohol setup 

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

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


.....
Тогда будет запускать как целое имя файла.

Хотя я бы не стал вовсе называть так свой скрипт, можно просто Installer_For_Alcohol.exe

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

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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:09, 18-04-2009 | #4


Аватара для Cuba

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


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

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


Спасибо.
Проблема решена.
Но есть ещё вопрос.
Всё устанавливается нормально, только возникает трудность в закрытии самого алкоголя после установки.
Между этими строками
PHP код: Выделить весь код

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

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

нужно подождать некоторое количество времени, но время не думаю что у всех будет одинаковое, думаю зависит от процессора.
Как можно отловить когда уже можно закрывать окно, если в AutoIt Window Info ничего не изменяется, хотя сначала

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

Последний раз редактировалось Cuba, 18-04-2009 в 13:03. Причина: Возник ещё вопрос


Отправлено: 08:05, 18-04-2009 | #5


Аватара для Creat0R

Must AutoIt


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

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


Цитата Cuba:
нужно подождать некоторое количество времени »
Подождать чего? Пока окно не закроется? Тогда WinWaitClose()

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

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

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


Отправлено: 13:31, 18-04-2009 | #6


Аватара для Cuba

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


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

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



Отправлено: 17:16, 18-04-2009 | #7


Аватара для Creat0R

Must AutoIt


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

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


Cuba, Ну тогда нужно отслеживать закрытие этого Popup-окна, что Au3 Info Tool показывает на нём, есть класс/заголовок у него?

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

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

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


Отправлено: 22:52, 18-04-2009 | #8


Googler


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

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


Cuba, под рукой оказалась только v.1.4.8 (Build 1222), получилось где-то так:
Код: Выделить весь код
; Ожидение появления окна обновления устройств
Do
    Sleep(100)
Until ControlCommand("[CLASS:TForm]", "", "[CLASS:TPanel; INSTANCE:1]", "IsVisible")

; Ожидение закрытия  окна обновления устройств
While ControlCommand("[CLASS:TForm]", "", "[CLASS:TPanel; INSTANCE:1]", "IsVisible")
    Sleep(100)
WEnd

Отправлено: 14:04, 19-04-2009 | #9


Аватара для Cuba

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


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

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


amel27, ждёт...
Но потом не закрывается.
наверно не видит, что то окошко закрылось.
Код: Выделить весь код
WinWait("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")
WinClose("[CLASS:TAboutDlg;TITLE:О программе - Alcohol 120%]")

Do
    Sleep(100)
Until ControlCommand("[CLASS:TForm]", "", "[CLASS:TPanel; INSTANCE:1]", "IsVisible")

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

WinWait("[CLASS:TMainFrame;TITLE:Alcohol 120%]","Готов")
WinClose("[CLASS:TMainFrame;TITLE:Alcohol 120%]")
Creat0R, ничё не показывает.
Никак не могу отловить его...
И класс и заголовок как у главного окна и текст не показывает.

Отправлено: 18:02, 19-04-2009 | #10



Компьютерный форум 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




 
Переход