
Sys.refresh() проблема
#1
Отправлено 15 июля 2011 - 07:01
Нуждаюсь в помощи
В скрипте использую sys.refresh(). При работе скрипта Sys.refresh() иногда срабатывает, иногда нет (Объектное дерево не обновляется). Я не могу понять почему так происходит. Пробовал на TC7 и TC8
Добавлял Delay 3 секунды до Sys.refresh() и после - не помогло
Может есть идеи?
Зарание спасибо
#2
Отправлено 15 июля 2011 - 07:07
Приведите код.
#3
Отправлено 15 июля 2011 - 07:40
.........
Sys.refresh()
Set p=Sys.Process("iexplore")
Set a=p.Window("Internet Explorer_TridentDlgFrame", "Web Page", 1)
Call a.Close()
ТС log
"Unexpected window"
Cannot obtain the window with the window class "Internet Explore_TridentDlgFrame"
В тот момент когда появляется окно если остановить скрипт в ручную и посматреть Объектное дерево то это окно там не появляется. После нажатия Refresh all окно становится доступным в Объектном дереве
Sys.Process("iexplore").Window("Internet Explorer_TridentDlgFrame","Web Page",1)
#4
Отправлено 27 июля 2011 - 13:12
Я бы советовал присваивать объекты через проверки екзист(через WaitProcess FindChild ).Строчка кода:
.........
Sys.refresh()
Set p=Sys.Process("iexplore")
Set a=p.Window("Internet Explorer_TridentDlgFrame", "Web Page", 1)
Call a.Close()
ТС log
"Unexpected window"
Cannot obtain the window with the window class "Internet Explore_TridentDlgFrame"
В тот момент когда появляется окно если остановить скрипт в ручную и посматреть Объектное дерево то это окно там не появляется. После нажатия Refresh all окно становится доступным в Объектном дереве
Sys.Process("iexplore").Window("Internet Explorer_TridentDlgFrame","Web Page",1)
Пример...
if Sys.WaitProcess("iexplore",1000).exists then set p = Sys.Process("iexplore") PropArr = Array("WndClass","WndCaption") ValuesArr = Array("Internet Explorer_TridentDlgFrame","Web Page") set a = p.FindChild(PropArr,ValuesArr,0,true) if a.exists then ...... end if
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных