Перейти к содержимому

Фотография

Sys.refresh() проблема


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Buldog

Buldog

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:VV

Отправлено 15 июля 2011 - 07:01

Здравствуйте.
Нуждаюсь в помощи

В скрипте использую sys.refresh(). При работе скрипта Sys.refresh() иногда срабатывает, иногда нет (Объектное дерево не обновляется). Я не могу понять почему так происходит. Пробовал на TC7 и TC8

Добавлял Delay 3 секунды до Sys.refresh() и после - не помогло

Может есть идеи?

Зарание спасибо
  • 0

#2 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 15 июля 2011 - 07:07

Почему Вы решили, что дерево не обновляется ?
Приведите код.
  • 0

#3 Buldog

Buldog

    Новый участник

  • Members
  • Pip
  • 3 сообщений
  • ФИО:VV

Отправлено 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)
  • 0

#4 count_tic

count_tic

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Гуменюк Александр Вачильевич
  • Город:Киев

Отправлено 27 июля 2011 - 13:12

Строчка кода:
.........
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)

Я бы советовал присваивать объекты через проверки екзист(через WaitProcess FindChild ).
Пример...
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

  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных