текст в переменной и другие вопросы

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

текст в переменной и другие вопросы

Postby 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

Re: текст в переменной и другие вопросы

Postby VoidVolker » Fri, 11 Sep 2015, 17:16

Мануал > Работа с программой > Работа с переменными, константами и массивами > Массивы
Code: Select all
FALSE
40 0 DO
    <... проверка условия и замена флага на стеке...>
    1000 PAUSE
LOOP

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

Re: текст в пер

Postby 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

Re: текст в переменной и другие вопросы

Postby elos » Mon, 14 Sep 2015, 16:07

1) Есть ли возможность "прочитать" текст из окна сторонней программы (и в зависимости от него выполнять различные действия).

Конкретнее можно - из какой программы конкретно и откуда из окна (из заголовка или из "тела"), так как "игровые" окна DirectX не проходят.

И почему не используем отслеживание появления окна? (если это применимо, так как не знаем ответа на первый вопрос)
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: текст в переменной и другие вопросы

Postby 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.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: текст в переменной и другие вопросы

Postby 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/697438

p.s. цикл что я запросил и мне подсказал уважаемый VoidVolker - средство реализации следующей задачи -
ожидаем появление окна (например 30 секунд) если в это время его не появилось то делаем то-то, если появилось - другое. Отслеживание (появилось ли оно) происходит с помощью описанной мною задачи DetectorOkna.
Хотелось бы еще проверять, если окно появилось, то какой там текст - Succes или Fail (в примере во вложении как раз фейл, но обычно Sucses)
Likvi139
 
Posts: 8
Joined: Thu, 10 Sep 2015, 17:10

Re: текст в переменной и другие вопросы

Postby 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
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 1 guest

cron