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 анонимных

