Проверять заголовок таба в Chrome - как?

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

Проверять заголовок таба в Chrome - как?

Postby max_klop » Fri, 01 Mar 2013, 13:11

Привет вам!

Вот такая задачка - даже не знаю, как подступиться, вроде как табы - не дочерние окна?
Как бы их перебирать и при изменении заголовка одного (неактивного, когда активный - то его заголовок заголовком главного окна становится и там всё просто) из них уже что-то делать?
Может, кто-то что-то похожее делал?
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby VoidVolker » Fri, 01 Mar 2013, 13:49

Алгоритм примерно такой.
- Создать список табов с двумя значениями: хэндл окна и его заголовок;
- Искать окна по классу окна Chrome_WidgetWin_0;
- Проверить, есть ли окно в списке табов по его хэндлу;
- Если окно уже есть в списке, то проверить изменился ли заголовок;
- Если заголовок изменился, то что-то делаем, иначе следующий шаг;
- Если окна нет в списке табов, то добавить его в список табов;
- Проверить существование всех окон в списке табов;
- Возврат к шагу два.
Для исследования дерева окон есть отличная утилита InqSoft Window Scanner.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Проверять заголовок таба в Chrome - как?

Postby Aveiro » Sun, 03 Mar 2013, 08:25

Что такое tab в Сhome ?
Если это тоже текстовый файл как и в nnCron, т может все проще?
Изменение отслеживаем:
Code: Select all
WATCH-CHANGE-FILE-NAME
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Проверять заголовок таба в Chrome - как?

Postby VoidVolker » Sun, 03 Mar 2013, 10:55

Aveiro wrote:Что такое tab в Сhome ?

Вкладка. Хром запускает каждую вкладку в отдельном процессе. Следить через файл сессии хрома не получится, ибо в нём нет хендлов окон.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Проверять заголовок таба в Chrome - как?

Postby max_klop » Mon, 04 Mar 2013, 11:52

VoidVolker wrote:Алгоритм примерно такой.
- Создать список табов с двумя значениями: хэндл окна и его заголовок;
- Искать окна по классу окна Chrome_WidgetWin_0;
...

Спасибо, идея искать по классу породила нечто уже рабочее:
Code: Select all
#( Check_mail_2
Time: */3  * * * * *
Action:
  WIN-EXIST: "/Kerio/"
  IF
      S" %FOUND-WINDOW%" EVAL-SUBST S" /.* (\d+).*Kerio/" RE-MATCH   
        IF
          MSG: " In Kerio: %$1% msg"
        THEN
  THEN     

    FOR-WINDOWS: "Chrome_WidgetWin_0"
      FOR-CHILD-WINDOWS: "*Kerio*"
        S" %FOUND-CHILD-WINDOW%" EVAL-SUBST S" /.* (\d+).*Kerio/" RE-MATCH   
          IF
            MSG: " In Kerio: %$1% msg"
          THEN
      ;FOR-CHILD-WINDOWS   
    ;FOR-WINDOWS
)#

-- проверяет заголовок у веб-почты, первая проверка - если вкладка активна и её заголовок и есть заголовок Хрома, вторая - если вкладка с почтой не активна.

Не сочтите за наглость - но вопрос №2 - как бы организовать нечто вроде статической переменной, сохранять туда количество сообщений и повторять предупреждение при его изменении?
Т.е. - было 2 сообщения, ОК, прочитал, стало 0 - не выводим ничего, было 3, ОК, не читал - предупреждаем, когда стало больше 3х?
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby Morituruz » Mon, 04 Mar 2013, 12:14

Может глупый вопрос, а вы проверяли, может уже есть готовое расширение для Хрома с нужным вам функционалом?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Проверять заголовок таба в Chrome - как?

Postby max_klop » Mon, 04 Mar 2013, 12:55

Moriturus wrote:Может глупый вопрос, а вы проверяли, может уже есть готовое расширение для Хрома с нужным вам функционалом?

Мейл-чекеров действительно есть немеряно, но тут почта фактически проверена, просто информация не очень заметным способом выводится - вот и решил таким способом обращать своё внимание на наличие новой почты. Ну и nnCron гораздо легче любого майл-чекера, да и пользовался я им когда-то - почему не вспомнить хорошее дело?
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby max_klop » Mon, 04 Mar 2013, 16:47

Получилось в итоге вот:
Code: Select all
<%
0 VALUE mail_count
0 VALUE check_count
%>

#( Check_mail_2
Time: */3  * * * * *
: do_check
          IF
          $1 mail_count =
            IF
              2 check_count <
              IF
                MSG: " In Kerio: %$1% msg"
                $1 TO mail_count
              ELSE
                check_count 1 + TO check_count 
              THEN
            ELSE
              MSG: " In Kerio: %$1% msg"
              $1 TO mail_count
             THEN 
          ELSE
            0 TO mail_count
            0 TO check_count
          THEN ;
Action:

  WIN-EXIST: "/Kerio/"
  IF
      S" %FOUND-WINDOW%" EVAL-SUBST S" /.* (\d+).*Kerio/" RE-MATCH
      do_check
  THEN     

    FOR-WINDOWS: "Chrome_WidgetWin_0"
      FOR-CHILD-WINDOWS: "*Kerio*"
        S" %FOUND-CHILD-WINDOW%" EVAL-SUBST S" /.* (\d+).*Kerio/" RE-MATCH   
        do_check
      ;FOR-CHILD-WINDOWS   
    ;FOR-WINDOWS
)#

Вроде работает. :) Хотя шестое чувство подсказывает, что многое здесь можно улучшить... да?
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby VoidVolker » Mon, 04 Mar 2013, 16:49

max_klop wrote:Не сочтите за наглость - но вопрос №2 - как бы организовать нечто вроде статической переменной, сохранять туда количество сообщений и повторять предупреждение при его изменении?

Справочная система nnCron > Работа с программой > Работа с переменными, константами и массивами
Code: Select all
#( Задача_174604032013
...
VARIABLE variable_name
Action:
...
)#


Code: Select all
S" %FOUND-WINDOW%" EVAL-SUBST

=
Code: Select all
FOUND-WINDOW
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Проверять заголовок таба в Chrome - как?

Postby max_klop » Mon, 04 Mar 2013, 18:16

VoidVolker wrote:
Code: Select all
S" %FOUND-WINDOW%" EVAL-SUBST

=
Code: Select all
FOUND-WINDOW


Сенкс, гораздо симпатичней.
А по поводу того, что у меня получилось не посмотрите?
Иногда ошибка стека появляется и что-то не могу понять, откуда.
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby VoidVolker » Mon, 04 Mar 2013, 20:54

max_klop wrote:Иногда ошибка стека появляется и что-то не могу понять, откуда.

Code: Select all
$1 mail_count =

Адрес строки остается на сетке.
Code: Select all
$1 TO mail_count

На стеке остается адрес строки, а длина оказывается в переменной.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Проверять заголовок таба в Chrome - как?

Postby max_klop » Tue, 05 Mar 2013, 11:32

Спасибо за помощь, вот вариант, который не ругается на стек (и даже работает):
Code: Select all
<%
0 VALUE mail_count
0 VALUE check_count
%>

#( Check_mail_2
Time: */3  * * * * *

: do_msg
  MSG: "%hh%:%mm% %crlf% In Kerio: %$1% msg"
  $1 S>NUM TO mail_count
  ;

: do_check
  IF
  $1 S>NUM mail_count =
    IF
      2 check_count <
      IF
        do_msg
      ELSE
        check_count 1 + TO check_count 
      THEN
    ELSE
      do_msg
    THEN 
  ELSE
    0 TO mail_count
    0 TO check_count
  THEN ;

Action:

  WIN-EXIST: "/Kerio/"
  IF
      FOUND-WINDOW S" /.* (\d+).*Kerio/" RE-MATCH
       do_check
  THEN     

  FOR-WINDOWS: "Chrome_WidgetWin_0"
     FOR-CHILD-WINDOWS: "*Kerio*"
        FOUND-CHILD-WINDOW S" /.* (\d+).*Kerio/" RE-MATCH   
        do_check
     ;FOR-CHILD-WINDOWS   
  ;FOR-WINDOWS
)#
max_klop
 
Posts: 9
Joined: Fri, 06 Nov 2009, 15:03

Re: Проверять заголовок таба в Chrome - как?

Postby VoidVolker » Tue, 05 Mar 2013, 11:37

Окк, код выглядит вполне нормально. А переменные не обязательно за пределы задачи выносить.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 4 guests