Как отследить текст в дочернем окне

Обсуждение программ nnCron и nnCron LITE

Как отследить текст в дочернем окне

Postby DVE » Thu, 30 Sep 2004, 13:30

Помомгите пожалуйста найти или подскажите как мне отловить изменения в дочернем окне ( msctls_statusbar32 ) Internet Explorer.
FOR-CHILD-WINDOWS показывает только класс дочернего окна но его можно посмотреть WinSpy, а мне нужно конкретно отлавливать текст в этом окне для последующей обработки.

Хочу чтобы задача ждала окончания загрузки страночки Internet Explorer и продолжала работу только тогда, когда появится слово "Готово" т.е. когда страничка загрузилась до конца.
Может можно это сделать и както по другому но я не знаю как.
ПОМОГИТЕ решить эту проблему.
Спасибо.
Да и информация из %CLIPBOARD% почемуто не присваивается файловой переменной

S" %CLIPBOARD%" TO file_var
MSG: "%file_var%"

на экран выводит %CLIPBOARD%
хотя так

MSG: "%CLIPBOARD%"

работает.
Если не трудно объясните.
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Re: Как отследить текст в дочернем окне

Postby VK » Thu, 30 Sep 2004, 13:37

DVE wrote:S" %CLIPBOARD%" TO file_var
MSG: "%file_var%"
на экран выводит %CLIPBOARD%


http://www.nncron.ru/help/RU/add_info/f ... m#evaluate
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Re: Как отследить текст в дочернем окне

Postby DVE » Thu, 30 Sep 2004, 15:20

VK (far_away) wrote:
DVE wrote:S" %CLIPBOARD%" TO file_var
MSG: "%file_var%"
на экран выводит %CLIPBOARD%


http://www.nncron.ru/help/RU/add_info/f ... m#evaluate


Я все равно ни чего не понял.
Получается что буфер Winda и %CLIPBOARD% это ни одно и то-же.

CREATE buf_ex 256 ALLOT
Action:
CLIPBOARD: "TEXT"
S" %CLIPBOARD%" EVAL-SUBST buf_ex PLACE
MSG: "%buf_ex COUNT%"

Выводит TEXT
Удаляем строку (CLIPBOARD: "TEXT") и копируем чтонибудь в буфер обмена WINDA. Запускаем.

CREATE buf_ex 256 ALLOT
Action:
S" %CLIPBOARD%" EVAL-SUBST buf_ex PLACE
MSG: "%buf_ex COUNT%"

и видим что выводится TEXT а не то что скопировано в буфер.
Как быть?
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby VK » Thu, 30 Sep 2004, 16:51

ну, вот у меня задача корректно выводит содержимое клипборда (убедись, что имя переменной уникално!):
Code: Select all
#( test_clipboard
NoActive
CREATE buf_ex 256 ALLOT
Action:
S" %CLIPBOARD%" EVAL-SUBST buf_ex PLACE
MSG: "%buf_ex COUNT%"
)#


Хотя проще (и правильнее) эту задачу было написать так:

Code: Select all
#( test_clipboard
NoActive
CREATE buf_ex 256 ALLOT
Action:
СLIPBOARD buf_ex PLACE
MSG: "%buf_ex COUNT%"
)#
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby makrus » Thu, 30 Sep 2004, 17:32

DVE
Удаляем строку (CLIPBOARD: "TEXT") и копируем чтонибудь в буфер обмена WINDA. Запускаем.
...
и видим что выводится TEXT а не то что скопировано в буфер.


У меня твоя задача тоже отрабатывает нормально (выводит скопированный текст, а не "TEXT"), возможно после удаления строки ты не дал nnCron'у перечитать кронтабы.
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Postby DVE » Fri, 01 Oct 2004, 07:28

Получилось.
Но пришлось добавить

#( pp
WatchClipboard: "*"
Action:
)#

Похоже на то ,что nnCron запоминает в %Clipboard% скопированный первым текст, потому что после перезапуска системы скопировав текст WINDOM начинает выводить только его, но если добавить задачу которая выше, то происходит проверка и %Clipboard% в nnCronе меняется.
Может быть у меня это из-за системы но наврятли (P366 64Mb Win98Se).

А насчет основного вопроса как???
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby DVE » Fri, 01 Oct 2004, 07:52

VK (far_away) wrote:ну, вот у меня задача корректно выводит содержимое клипборда (убедись, что имя переменной уникално!):
Code: Select all
#( test_clipboard
NoActive
CREATE buf_ex 256 ALLOT
Action:
S" %CLIPBOARD%" EVAL-SUBST buf_ex PLACE
MSG: "%buf_ex COUNT%"
)#


Хотя проще (и правильнее) эту задачу было написать так:

Code: Select all
#( test_clipboard
NoActive
CREATE buf_ex 256 ALLOT
Action:
СLIPBOARD buf_ex PLACE
MSG: "%buf_ex COUNT%"
)#


Первая задача работает а вторая ругается на синтаксическую ошибку в строке

СLIPBOARD buf_ex PLACE
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby VK » Fri, 01 Oct 2004, 09:56

приглядись к задаче: в ней слово CLIPBOARD начинается с русской буквы С, а не с английской C.
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby DVE » Fri, 01 Oct 2004, 10:27

VK (far_away) wrote:приглядись к задаче: в ней слово CLIPBOARD начинается с русской буквы С, а не с английской C.


Точно. Спасибо. Все работает.
А как сравнить две строковые переменные

<%
CREATE buf_ex 256 ALLOT
CREATE buf_ex1 256 ALLOT
%>

#( Test
NoActive
Action:
S" Текст" buf_ex1 PLACE
S" Текст" buf_ex PLACE
S" %buf_ex COUNT%" S" %buf_ex1 COUNT%" WC-COMPARE
IF MSG: "Одинаковые"
ELSE MSG: "Не одинаковые"
THEN

)#

Всегда пишет "Не одинаковые" хотя реально переменные имеют одинаковое значение.
Наверно я что-то делаю не так.
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby VK » Fri, 01 Oct 2004, 11:13

ну, почитай, плз доки - я ведь дал тебе ссылку... сейчас ты сравниваешь строку "%buf_ex COUNT%" со строкой "%buf_ex1 COUNT%". строки-то разные...
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby DVE » Fri, 01 Oct 2004, 12:51

VK (far_away) wrote:ну, почитай, плз доки - я ведь дал тебе ссылку... сейчас ты сравниваешь строку "%buf_ex COUNT%" со строкой "%buf_ex1 COUNT%". строки-то разные...



Я же говорю что чего-то не понимаю. Читал документацию но все равно не понял как сравнить две переменные. Почему "%buf_ex COUNT% и "%buf_ex1 COUNT% разные, ведь переменные заданы одинаковым текстом. Если несложно приведите пример так будет проще разобраться.
Спасибо.
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby VK » Fri, 01 Oct 2004, 12:59

либо так:

S" Текст" S" Текст" WC-COMPARE

либо так:

buf_ex COUNT buf_ex1 COUNT WC-COMPARE
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby DVE » Fri, 01 Oct 2004, 13:41

VK (far_away) wrote:либо так:

S" Текст" S" Текст" WC-COMPARE

либо так:

buf_ex COUNT buf_ex1 COUNT WC-COMPARE


Большое СПАСИБО.
Второе получилось.
А как мне отловить изменения в дочернем окне?
DVE
 
Posts: 7
Joined: Thu, 30 Sep 2004, 12:48

Postby VK » Fri, 01 Oct 2004, 13:58

ну, это хитрая и зависящая от многих нюансов задча. если "слету" не получилось, попробуй другой подход: скажем мониторить загрузку процессора процессом iexplore.exe и реагировать на то, как только этот процесс перестанет нагружать процессор (PROC-WAIT-CPU-USAGE).
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 6 guests

cron