отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

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

отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby tahak » Mon, 25 May 2015, 16:39

Всем привет! Прошу помощи.
Не работает простейшая задача:
Code: Select all
#( 1c_close
WatchWindow: "*Корзина*"
Action:
WIN-CLOSE: "*Корзина*"
)#

Так же не работают окна "Компьютер", Блокнота, и т.п. (маски с знаком * использовал). Не срабатывают и
WatchWinCreate:
WatchWinActivate
Т.е. задача при появлении не срабатывает. Если вручную запустить задачу, то окно закрывается.

Если в этой же задаче поменять Корзину на окно Notepad++, то задача отрабатывает нормально - окно закрывается сразу. Предполагаю, что это может быть связано с кракозябрами - при копировании заголовка окна из WInSpy из буфера вставляются кракозябры. Вместо "Корзина" - Êîðçèíà
Т.е. проблемы две:
1. Не срабатывает зада при появлении окна.
2. Из WinSpy заголовок окна копируется кракозябрами.

Все это нужно для того чтобы отловить окно
http://oi59.tinypic.com/309rltk.jpg
и закрыть его, эмулировав нажатие на крестик или кнопку "закрыть программу".
Поиском пользовался, находил похожие вопросы, но ответов не нашел.

Используется
nnCron v.1.93 beta 13
Windows 7 x64
1c 8.2-8.3
tahak
 
Posts: 3
Joined: Mon, 25 May 2015, 14:44

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby VoidVolker » Tue, 26 May 2015, 20:45

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

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby tahak » Wed, 27 May 2015, 15:42

Да, nnCron запущен как приложение, от имени администратора с ключом -ns Забыл сразу написать, а потом не смог добавить в скрытую тему.

В итоге, вроде бы, отловил окно так:

Code: Select all
#( 1c_close_error
SingleInstance
Action:
WIN-EXIST: "*О программе*"
IF
    BALLOON: "" "Окно 1cv8 с ошибкой будет закрыто автоматически через 10 минут"
    PAUSE: 5000
    BALLOON: "" ""
    PAUSE: 00:10
    WIN-EXIST: "*О программе*"
        IF
        WIN-CLOSE: "%FOUND-WINDOW%" 
        LOG: "S:\nnCron.txt" "%hh%:%mm%:%ss% окно с ошибкой было закрыто"
    THEN
THEN
)#

Это задача на проверку окна будет запускаться каждую минуту?

Хотя по описанию должно было работать так:
Code: Select all
#( test
SingleInstance
Action:
FOR-WINDOWS: "*1С*"
    FOR-CHILD-WINDOWS: "*О программе*"
       WIN-CLOSE:  "%FOUND-CHILD-WINDOW%"
   ;FOR-CHILD-WINDOWS
;FOR-WINDOWS
)#

но так не работает.
tahak
 
Posts: 3
Joined: Mon, 25 May 2015, 14:44

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby VoidVolker » Wed, 27 May 2015, 19:37

tahak wrote:Это задача на проверку окна будет запускаться каждую минуту?

Да.
tahak wrote:Хотя по описанию должно было работать так:

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

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby tahak » Thu, 28 May 2015, 17:26

tahak wrote:Хотя по описанию должно было работать так:

Какому описанию? Структуры окон 1С? Стандартные сообщения об ошибках являются окнами верхнего уровня, а не дочерними.

Если я правильно понимаю WinSpy, то окно "О программе" является все же дочерным
http://oi62.tinypic.com/2zhqe0m.jpg

Тем более, если оно основное, его было бы проще отловить.
Вот такая задача тоже не срабатывает
Code: Select all
#( 1c_test2
WatchWindow: "*О программе*"
Action:
WIN-CLOSE: "*О программе*"
)#


Но если вручную ее запустить, то окно закрывается. Т.е. проблема именно в отслеживании. (WatchWinCreate: и WatchWinActivate: так же не срабатывают).
tahak
 
Posts: 3
Joined: Mon, 25 May 2015, 14:44

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby AlikasS » Fri, 29 May 2015, 09:49

tahak
WatchWindow: "win_pattern"
где
win_pattern - это маски заголовка окна или класса окна.

возможно класс окна поможет
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby dothen » Fri, 29 May 2015, 16:39

Справка wrote:nnCron не "отлавливает" нужное мне окно. В чем пpоблема?
Скоpее всего, у этого окна есть pодитель (возможно невидимый) a cлова WatchWin* работают только с окнами веpхнего уpовня (без pодителя). Впрочем, если очень нужно, то можно попытаться обработать это дочернее окно с помощью цикла FOR-CHILD-WINDOWS:.


Попытаться то можно, а вот не тут-то было!

И WatchWin* не отлавливает и FOR-CHILD-WINDOWS: не обрабатывает.
Пример:
Code: Select all
#( test8
SingleInstance
WatchWinActivate: "*" \ чтобы не ждать начала минуты и не запускать задачу вручную
Rule: WIN-EXIST: "О программе*" \ "Открыть"
Action:
      FOR-WINDOWS: "*Блокнот*"   \ "*"
       +" \NWindow:   %FOUND-WINDOW%\N\N"
        FOR-CHILD-WINDOWS: "*"
          +" \tChild window:   %FOUND-CHILD-WINDOW%\N"
       ;FOR-CHILD-WINDOWS
     ;FOR-WINDOWS
    SPAD@ MsgBox
\    SPAD@  S" e:\wind.txt" FWRITE
)#


Окно "О программе*" и другие диалоговые окна не значятся в списке дочерних окон.
А WinSpy и Window Scanner показывают что это дочерние окна.

Непонятно, какие-то бесхозные окна получается?
dothen
 
Posts: 184
Joined: Mon, 16 Mar 2015, 04:58

Re: отследить окно (windows 7 x64, по rdp, дочерное окно 1с)

Postby VoidVolker » Fri, 29 May 2015, 19:00

http://s0m.narod.ru/iws.html - отличный сканнер окон, показывает все дерево окон в системе.
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: No registered users and 2 guests

cron