Обсуждение программ nnCron и nnCron LITE
by Likvi139 » Fri, 11 Sep 2015, 15:45
Добрый день, прошу меня извинить если повторюсь, но поиск как по интернету так и по форму не дал мне результата (а быть может я недостаточно внимательно искал). Использую nncron не давно, новичек, возникли некоторые вопросы, буду очень благодарен если подскажите пути решения моих вопросов.
1) Есть ли возможность "прочитать" текст из окна сторонней программы (и в зависимости от него выполнять различные действия).
2) Как можно внести в переменную текст (после чего он будет менятся, и будет записываться в качестве названия файлов, с добавлением текущей даты (дату уже получилось добавить, вопрос только о тексте).
3) Как можно сделать операцию или к паузе (или как еще можно задать интервал 40 секунд) и появлению окна, т.е. если в течении 40 секунд определенного окна не появилось - выполнять одно, а если появилось - выполнять другое (тут кстати частично первый мой вопрос - важна еще надпись в окне).
Заранее премного благодарен. p.s. сильно не пинайте, еще новичек.
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by Likvi139 » Mon, 14 Sep 2015, 14:47
Спасибо, немного работает но не совсем так, возможно я не точно выразился. Итак, что есть. Detect_first @ - переменная, используется при обнаружении другого окна, (когда оно появляется она становиться ON, т.е. -1) - Code: Select all
#( proverka_CIKLA_2 RunOnce NoDel Time: 31 15 10 9 * 2015 Action: / FALSE 30 0 DO Detect_first @ / IF / TMSG: "Окно есть" / LEAVE / THEN 1000 PAUSE LOOP IF MSG: "Вышло окно" ELSE MSG: "Прошло 30 секунд" THEN
)#
Если оставить в том виде что есть - то на изменение переменной не реагирует, и только "Прошло 30 секунд". Если убрать коментарии то работает уже ближе к тому как задумывалось, но в любом случае выдает "Прошло 30 секунд" и все так же не выдает "Вышло окно". А еще я не полнял зачем FALSE в начале. p.s. и всё еще интересуют мои предыдущие вопросы - если есть идеи, прошу подбросить. Еще раз спасибо.
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by elos » Mon, 14 Sep 2015, 16:07
1) Есть ли возможность "прочитать" текст из окна сторонней программы (и в зависимости от него выполнять различные действия).
Конкретнее можно - из какой программы конкретно и откуда из окна (из заголовка или из "тела"), так как "игровые" окна DirectX не проходят. И почему не используем отслеживание появления окна? (если это применимо, так как не знаем ответа на первый вопрос)
-
elos
-
- Posts: 668
- Joined: Tue, 25 Apr 2006, 11:15
-
by VoidVolker » Mon, 14 Sep 2015, 17:49
- Code: Select all
30 0 DO Detect_first @ 1000 PAUSE LOOP IF MSG: "Вышло окно" ELSE MSG: "Прошло 30 секунд" THEN
В данном случае на стеке будет 30 чисел из переменной Detect_first.
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Likvi139 » Tue, 15 Sep 2015, 09:34
elos wrote:1) Есть ли возможность "прочитать" текст из окна сторонней программы (и в зависимости от него выполнять различные действия).
Конкретнее можно - из какой программы конкретно и откуда из окна (из заголовка или из "тела"), так как "игровые" окна DirectX не проходят. И почему не используем отслеживание появления окна? (если это применимо, так как не знаем ответа на первый вопрос)
Отслеживание окна как раз таки использую, - Code: Select all
#( DetectorOkna VARIABLE Detect_first WatchWindow: "*DBUpDownLDK*" Action: WIN-EXIST: "*DBUpDownLDK*" IF Detect_first ON 10000 PAUSE Detect_first OFF THEN )#
Окно что отлавливаю - дочернее окно программы, не directx. вот скан его с winspy. http://zalil.su/697438p.s. цикл что я запросил и мне подсказал уважаемый VoidVolker - средство реализации следующей задачи - ожидаем появление окна (например 30 секунд) если в это время его не появилось то делаем то-то, если появилось - другое. Отслеживание (появилось ли оно) происходит с помощью описанной мною задачи DetectorOkna. Хотелось бы еще проверять, если окно появилось, то какой там текст - Succes или Fail (в примере во вложении как раз фейл, но обычно Sucses)
-
Likvi139
-
- Posts: 8
- Joined: Thu, 10 Sep 2015, 17:10
by VoidVolker » Tue, 15 Sep 2015, 20:11
- Code: Select all
FALSE 30 0 DO WIN-EXIST: "*DBUpDownLDK*" OR 1000 PAUSE LOOP
IF <окно появилось в течении 30 секунд> ELSE <окно не появилось в течении 30 секунд> THEN
- Code: Select all
FALSE 30 0 DO WIN-EXIST: "*DBUpDownLDK*" IF DROP TRUE LEAVE THEN \ Если надо что-то сделать сразу после появления окна, а не ждать оставшееся время 1000 PAUSE LOOP
IF <окно появилось в течении 30 секунд> ELSE <окно не появилось в течении 30 секунд> THEN
А уже после цикла можно работать с дочерними окнами: - Code: Select all
FOR-CHILD-WINDOWS: "yyy" \ ... выполняем работу с дочерними окнами ;FOR-CHILD-WINDOWS
-

VoidVolker
- Site Admin
-
- Posts: 2907
- 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
|
|