Показать полную графическую версию : Как отследить появление сообщения в разных ОС
Str_ani_ck
26-07-2009, 19:19
У меня при установке программы на висте выскакивает сообщение о несовместимости данной программы с вистой, а на хр нет . А в скрипте я уже прописал
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") , если данного окна нет???
как мне быть если на хр этого окна нет, а скрипт затормозился на этой строчке 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")
Можеш сделать ожидание в цикле появления или того или другого окна, и при появлении - выход из цикла и дальше по коду.
Ах да, совсем упустил из виду - название темы неудачное! Это форум по AutoIt, поэтому оно и так должно быть понятным, что нужна помощь по AutoIt.
Ээээ.... А не проще проверить на какой системе, XP или Vista выполняется скрипт?
Смотрите макрос @OSVersion
Str_ani_ck
26-07-2009, 22:11
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
266903582
26-07-2009, 23:24
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 использовать, но это уже на твое усмотрение...
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")
Str_ani_ck
27-07-2009, 02:06
While 0- Вот так скрипт идет дальше а с 1 стоит на месте???? Не понимаю что нужно
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 »
Str_ani_ck
27-07-2009, 02:23
Хотя вместо send-ов надежнее будет controlsend использовать, но это уже на твое усмотрение...
Акак этим пользоваться
Допустим мне нужно нажать кнопку TAB
Я набираю команду Send("{TAB }")
А этим как пользоваться controlsend?
266903582
27-07-2009, 18:39
ControlSend ( "title", "text", controlID, "string" [, flag] )
ControlSend работает точно также, как Send за исключением того, что нажатия высылаются непосредственно в окно/управляющий элемент, а не только для активного окна.
Подробности в справке.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.