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

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

Ответить
Настройки темы
Как отследить появление сообщения в разных ОС

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


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

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


Изменения
Автор: Creat0R
Дата: 26-07-2009
Описание: Переименование темы
У меня при установке программы на висте выскакивает сообщение о несовместимости данной программы с вистой, а на хр нет . А в скрипте я уже прописал

1 WinWaitActive("Не совместимость программы")
2 Send("{TAB 4}")
3 Sleep ( 200)
4 Send("{SPACE}")
5 Sleep ( 200)
6 Send("{TAB}")
7 Sleep ( 200)
8 Send("{RIGHT}")
9 Sleep ( 200)
10 Send("{ENTER}")
11 WinWaitActive("Ошибка лицензии AutoCAD 2007")


А вот как мне быть если на хр этого окна нет, а скрипт затормозился на этой строчке WinWaitActive("Не совместимость программы") , а мне нужно чтобы он перешел к строке WinWaitActive("Ошибка лицензии AutoCAD 2007") , если данного окна нет???

Отправлено: 19:19, 26-07-2009

 

Аватара для Creat0R

Must AutoIt


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

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


Цитата Str_ani_ck:
как мне быть если на хр этого окна нет, а скрипт затормозился на этой строчке WinWaitActive("Не совместимость программы") »
Тут нужно либо ожидать другое окно, которое появляется/активируется далее (вне зависимости от того, есть ли сообщение несовместимости или нету), либо ожидать это окно но определённое время, ну или вообще в цикле всё это проверять...

Последний вариант:

Код: Выделить весь код
While 1
    If WinExists("Не совместимость программы") Then
        Send("{TAB 4}")
        Sleep(200)
        Send("{SPACE}")
        Sleep(200)
        Send("{TAB}")
        Sleep(200)
        Send("{RIGHT}")
        Sleep(200)
        Send("{ENTER}")

        ExitLoop
    EndIf

    If WinExists("Ошибка лицензии AutoCAD 2007") Then ExitLoop
WEnd

WinWaitActive("Ошибка лицензии AutoCAD 2007")

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

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

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


Отправлено: 19:38, 26-07-2009 | #2



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

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


Аватара для beve

Старожил


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

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


Можеш сделать ожидание в цикле появления или того или другого окна, и при появлении - выход из цикла и дальше по коду.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Отправлено: 19:41, 26-07-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Ах да, совсем упустил из виду - название темы неудачное! Это форум по AutoIt, поэтому оно и так должно быть понятным, что нужна помощь по 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


Отправлено: 20:09, 26-07-2009 | #4


Аватара для SyDr

Старожил


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

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


Ээээ.... А не проще проверить на какой системе, XP или Vista выполняется скрипт?
Смотрите макрос @OSVersion

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 20:12, 26-07-2009 | #5


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


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

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


Цитата Creat0R:
While 1
If WinExists("Не совместимость программы") Then
Send("{TAB 4}")
Sleep(200)
Send("{SPACE}")
Sleep(200)
Send("{TAB}")
Sleep(200)
Send("{RIGHT}")
Sleep(200)
Send("{ENTER}")
ExitLoop
EndIf
If WinExists("Ошибка лицензии AutoCAD 2007") Then ExitLoop
WEnd
WinWaitActive("Ошибка лицензии AutoCAD 2007") »


Вставил это вместо своего куска скрипта , и скрипт тормозит на If WinExists("Не совместимость программы") Then

Отправлено: 22:11, 26-07-2009 | #6


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


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

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


Str_ani_ck, попробуй так:
Код: Выделить весь код
While 1
If WinExists("Не совместимость программы") Then f1()
If WinExists("Ошибка лицензии AutoCAD 2007") Then ExitLoop
WEnd
Winwait("Ошибка лицензии AutoCAD 2007")
WinActivate("Ошибка лицензии AutoCAD 2007")
;~ Дальше свое код

Func f1()
	WinActivate("Не совместимость программы")
	Send("{TAB 4}")
	Sleep(200)
	Send("{SPACE}")
	Sleep(200)
	Send("{TAB}")
	Sleep(200)
	Send("{RIGHT}")
	Sleep(200)
	Send("{ENTER}")
EndFunc
Хотя вместо send-ов надежнее будет controlsend использовать, но это уже на твое усмотрение...

-------
Информация для размышления
Такому в вузах не научат


Отправлено: 23:24, 26-07-2009 | #7


Аватара для SyDr

Старожил


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

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


Код: Выделить весь код
If @OSVersion = "WIN_VISTA" Then
	WinWaitActive("Не совместимость программы")
	Send("{TAB 4}")
	Sleep ( 200)
	Send("{SPACE}")
	Sleep ( 200)
	Send("{TAB}")
	Sleep ( 200)
	Send("{RIGHT}")
	Sleep ( 200)
	Send("{ENTER}")
EndIf
WinWaitActive("Ошибка лицензии AutoCAD 2007")

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 23:40, 26-07-2009 | #8


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


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

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


While 0- Вот так скрипт идет дальше а с 1 стоит на месте???? Не понимаю что нужно

Цитата 266903582:
While 0
If WinExists("Не совместимость программы") Then f1()
If WinExists("Ошибка лицензии AutoCAD 2007") Then ExitLoop
WEnd
Winwait("Ошибка лицензии AutoCAD 2007")
WinActivate("Ошибка лицензии AutoCAD 2007")
;~ Дальше свое код
Func f1()
WinActivate("Не совместимость программы")
Send("{TAB 4}")
Sleep(200)
Send("{SPACE}")
Sleep(200)
Send("{TAB}")
Sleep(200)
Send("{RIGHT}")
Sleep(200)
Send("{ENTER}")
EndFunc »

Отправлено: 02:06, 27-07-2009 | #9


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


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

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


Хотя вместо send-ов надежнее будет controlsend использовать, но это уже на твое усмотрение...
Акак этим пользоваться
Допустим мне нужно нажать кнопку TAB
Я набираю команду Send("{TAB }")
А этим как пользоваться controlsend?

Отправлено: 02:23, 27-07-2009 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
как убрать дальнейшее появление сообщения о сбоях служб? Svyatpro Автоматическая установка Windows 2000/XP/2003 7 13-02-2009 17:05
Как отследить изменения на сайте? Dupel Хочу все знать 9 17-02-2008 14:29
как замедлить появление taskbar? re-al Microsoft Windows 2000/XP 8 16-12-2004 09:42
Как отследить процесс завершения приложения fossil Программирование и базы данных 8 27-04-2004 19:07
Как в ХР вернуть появление сеточки вокруг ссылки, как в 98? Guest Microsoft Windows 2000/XP 7 04-08-2003 23:14




 
Переход