|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Как отследить появление сообщения в разных ОС |
|
||||
|
|
Как отследить появление сообщения в разных ОС
|
|
Пользователь Сообщения: 65 |
У меня при установке программы на висте выскакивает сообщение о несовместимости данной программы с вистой, а на хр нет . А в скрипте я уже прописал
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 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Str_ani_ck:
Последний вариант: 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")
|
|
|
------- Отправлено: 19:38, 26-07-2009 | #2 |
|
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Можеш сделать ожидание в цикле появления или того или другого окна, и при появлении - выход из цикла и дальше по коду.
|
|
------- Отправлено: 19:41, 26-07-2009 | #3 |
|
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Ах да, совсем упустил из виду - название темы неудачное! Это форум по AutoIt, поэтому оно и так должно быть понятным, что нужна помощь по AutoIt.
|
|
------- Отправлено: 20:09, 26-07-2009 | #4 |
|
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать Ээээ.... А не проще проверить на какой системе, XP или Vista выполняется скрипт?
Смотрите макрос @OSVersion |
|
|
------- Отправлено: 20:12, 26-07-2009 | #5 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Вставил это вместо своего куска скрипта , и скрипт тормозит на If WinExists("Не совместимость программы") Then |
|
|
Отправлено: 22:11, 26-07-2009 | #6 |
|
Пользователь Сообщения: 67
|
Профиль | Отправить 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
|
|
------- Отправлено: 23:24, 26-07-2009 | #7 |
|
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 23:40, 26-07-2009 | #8 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать While 0- Вот так скрипт идет дальше а с 1 стоит на месте???? Не понимаю что нужно
Цитата 266903582:
|
|
|
Отправлено: 02:06, 27-07-2009 | #9 |
|
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Хотя вместо send-ов надежнее будет controlsend использовать, но это уже на твое усмотрение...
Акак этим пользоваться Допустим мне нужно нажать кнопку TAB Я набираю команду Send("{TAB }") А этим как пользоваться controlsend? |
|
Отправлено: 02:23, 27-07-2009 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| как убрать дальнейшее появление сообщения о сбоях служб? | 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 | |
|