Почему nnCron не видит некоторые окна.

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

Почему nnCron не видит некоторые окна.

Postby Aveiro » Tue, 06 Jul 2010, 21:29

Добрый день.
Открыл для себя замечательную программу nnCron.
Простой,но очень функциональный планировщик. Один только режим "непотопляемости" чего стоит. Спасибо авторам.
У меня вопрос. С некоторыми окнами nnCron "расправляется как с семечками".Окно появилось и дальше действие.Четко и без задержек.
Но некоторые окна создаются и задача,которая должна запускаться при появление этого окна не запускается,ибо окно просто невидимо для nnCron.
Интересно есть-ли решение ?
Нужно просто при появление окна его фокусировать,но пока не смог своими силами это сделать.
Спасибо.
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: Почему nnCron не видит некоторые окна.

Postby VoidVolker » Tue, 06 Jul 2010, 21:59

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

Re: Почему nnCron не видит некоторые окна.

Postby Aveiro » Tue, 06 Jul 2010, 22:01

Спасибо за быстрый ответ . Сейчас посмотрю Windows Scanner.
Забыл написать,что окна,которые не отлавливаются-дочерние.
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: Почему nnCron не видит некоторые окна.

Postby Aveiro » Wed, 07 Jul 2010, 15:41

Странно.Задача: при появлении окна с заголовком "ABC"-закрыть окно "ABC".
Вот окно появилось. Но оно не закрывается. Запускаю задачу вручную-закрывается.
Значит заголовок окна правильный,но почему задача не запускается :?:
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: Почему nnCron не видит некоторые окна.

Postby makrus » Thu, 08 Jul 2010, 11:46

Aveiro
Значит заголовок окна правильный,но почему задача не запускается

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

Re: Почему nnCron не видит некоторые окна.

Postby Aveiro » Thu, 08 Jul 2010, 16:58

Задача простейшая. Для начала нужно хотя-бы отловить окно.....
При создании окна,должно появиться сообщение.
Если окно будет определяться,то конечно-же задача усложниться.

WatchWinActivate: "Import Data"
Action:
MSG: "Import Data"

Название окна правильное. WindowsScanner при нажатии на лампочку( для определения то или нет окно) заставляет его мигать.

nncron.exe v 1.93b3 Build 1125 29.12.2008
Windows XP3.
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: Почему nnCron не видит некоторые окна.

Postby makrus » Fri, 09 Jul 2010, 10:41

Aveiro
Показывать задачу нужно не из GUI-формы для создания задач, а из кронтаба целиком начиная со слова #( и до слова )# включительно.
1. пробуй авторизовать задачу, см. Help про авторизацию
2. попробуй другие слова категории WatchWin*
3. более надежный способ отлавливания момента появления окошка состоит в проверке в цикле с помощью слова WIN-EXIST? наличия окна

PS можно nnCron поновее поставить v.1.93 beta 10 но этим займись когда задача у тебя нормально заработает, на XP и тот что стоит должен нормально работать.
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Re: Почему nnCron не видит некоторые окна.

Postby Aveiro » Fri, 09 Jul 2010, 20:10

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

Все бы ничего, но задача должна запускаться при появлении этого окна.Окно появляется пару раз в день,а постоянно крутить цикл поиска окна слишком щедро в плане расходования ресурсов процессора.
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: Почему nnCron не видит некоторые окна.

Postby Dark_Jones » Sat, 10 Jul 2010, 11:24

Может эти окна являются дочерними? Вроде крон не ловит их...
Поищи в помощи FOR-CHILD-WINDOWS: "win_pattern" <...> ;FOR-CHILD-WINDOWS.
Dark_Jones
 
Posts: 414
Joined: Thu, 09 Nov 2006, 00:43
Location: Russia, S.Peterburg

Re: Почему nnCron не видит некоторые окна.

Postby Aveiro » Sat, 10 Jul 2010, 19:45

Ребята, не покажите на простом примере как по событию появления дочернего окна -нажать кнопку в этом окне ?
Есть родительское окно "A"- оно постоянно открыто. Когда идет импорт данных появляется дочернее окно ,назовем "ABC".
В дочернем окне есть кнопка "O.K"
Так вот,нужно при появлении дочернего окна "ABC" нажать кнопку "О.К" в этом окне.
Почти со всеми окнами "расправился" а это никак не могу отловить. Спасибо....это мне сильно облегчит решение автоматизации одной задачи. :?
Не хотелось-бы из-за небольшой такой задачки терять многие часы на освоение AutoIt...
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: Почему nnCron не видит некоторые окна.

Postby ascerdfg1 » Sun, 11 Jul 2010, 20:40

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

Все бы ничего, но задача должна запускаться при появлении этого окна.Окно появляется пару раз в день,а постоянно крутить цикл поиска окна слишком щедро в плане расходования ресурсов процессора.

Слова Watch... тоже зациклены, так что пробуй.
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Почему nnCron не видит некоторые окна.

Postby makrus » Tue, 13 Jul 2010, 12:49

Aveiro
Так вот,нужно при появлении дочернего окна "ABC" нажать кнопку "О.К" в этом окне.
Ты проверял видет ли окно "ABC" nnCron с помощью слова WIN-EXIST? ?
Если видет, то там совсем все просто, если нет, то код более громоздкий получится.

Окно появляется пару раз в день,а постоянно крутить цикл поиска окна слишком щедро в плане расходования ресурсов процессора.

1. В цикл вставляется пауза которая может принимать значения в очень широком диапазоне величин, от 1 мс до, например, 1 часа и более. Смотришь какая тебя точность устраивает и соотвествующую паузу вставляешь в цикл.
2. nnCron очень бережно относится к ресурсам компьютера в большинстве случаев и, помимо этого, позволяет очень точно настроить их потребление (см. п.1). Подозреваю что даже с помощью соотвествующих программ ты если и заметишь снижение производительности компьютера от подобной задачи с циклом проверки наличия окна и паузой в 1 сек., то оно будет очень не значительное (тем более на более-менее современной технике) ;)

PS "Подозреваю что даже..." написАл вот это и подумал - надо бы сделать замер расходывания ресурсов подобной задачей с помощью, конечно же, nnCron;) . Тогда можно будет не на словах всем рассказывать про экономичность nnCron'а , а в цифрах это показать. Осталось дело за малым - найти немного время для этого :Hangman: . Как найду, сделаю - выложу здесь же результаты.
все познается в сравнении
makrus
 
Posts: 336
Joined: Mon, 12 Jul 2004, 14:46
Location: Волгоград

Re: Почему nnCron не видит некоторые окна.

Postby prouser » Wed, 30 Dec 2015, 10:53

Доброго дня.
Так же проблема — nncron действительно не видит некоторых окон.
Путем экспериментов установлено, что это связано с разрядностью программы (32/64 бита).
И что дело действительно не в неправильной маске.

Пример крона, которым я пытаюсь поймать окно 64-битного фаерфокса:
Code: Select all
#( test64
WatchWindow: "*fire*"
Action:
   WIN-EXIST: "*fire*"
   IF
      MSG: %WIN-TITLE%
   THEN
)#

Паттерн 100% верный, что подтверждается как windows scanner'ом (окно мигает, как и должно), так и самим nncron — если запустить этот крон вручную, из меню, то сообщение с заголовком окна появится.
Кроме того, если заменить паттерн на «*», крон начинает срабатывать на всех окнах, кроме нужного!
Если же бинарник фаерфокса простой, 32-битный, но nncron его нормально детектирует.
Запускались обе программы под той же учеткой, что и nncron, то есть, никакой не админской.
Версия nncron — 1.91, запущена без сервиса.

Опробовано также на waterfox, console2 и ещё паре программ.
32 бита — окно детектится, 64 — нет.

Хотел сделать обнаружение окна другой программы, которая распространяется только в 64-битной версии.
Как-то даже не знаю что с этим делать.
prouser
 
Posts: 14
Joined: Wed, 17 Feb 2010, 14:05

Re: Почему nnCron не видит некоторые окна.

Postby ANR Daemon » Wed, 30 Dec 2015, 13:45

А давайте, вы будете писать в каком-то одном топике?…
ANR Daemon
 
Posts: 234
Joined: Mon, 26 Feb 2007, 22:59

Re: Почему nnCron не видит некоторые окна.

Postby Aveiro » Wed, 30 Dec 2015, 18:08

Неожиданно для себя открыл, что простым поиском не удается найти окна, формируемые самой программой nnCron :? Я уже не говорю, что нужно передать нажатия клавиш в окно
Пример1:

Вот окно
Code: Select all
#( Window_1             n
NoActive
SingleInstance
Action:
MSG: "Я окно, я есть !"  \ это окно будем ловить
 )#


Пытаемся это окно отыскать:

Code: Select all
#( Catch_Window_1       
NoActive
Action:
WIN-EXIST: "nnCron"                 
IF                                                             
   TMSG: "Окно есть, поймали  :)!" 5
ELSE
   TMSG: "Окно есть, но НЕ поймали (" 5
THEN
)#


Пример2

Окно

Code: Select all
#( Window_2             
NoActive
Action:
WIN-INPUT-TEXT: "Сможешь ввести информацию ?" 123 0=  \ это окно будем ловить 
IF
THEN
 )#


Пытаемся найти окно и ввести информацию...

Code: Select all
 #( Catch_Window_2       
NoActive
Action:
WIN-EXIST: "nnCron"                 
IF                                                             
   TMSG: "Окно есть, поймали, попытаемся ввести информацию  :)!" 5
   WIN-ACTIVATE: "nnCron"
    SEND-KEYS: "Тест пройден !"                                     
ELSE
   TMSG: "Окно есть, но НЕ поймали (" 5
THEN
)#


В обоих примерах окна nnCron не отловились. InqSoft Window Scanner сканирует окно и выдает название "nnCron"
( Windows7.)
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

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest