Сложности в составлении цикла.

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

Сложности в составлении цикла.

Postby bilivob » Sun, 03 Oct 2004, 02:15

Хочу задать цикл, но сколько не пробовал ничего не получается. Справку читал, не все понятно, в частности
Action:
3 0 DO
\ сообщение будет выведено тpи pаза
TMSG: "Inside the loop" 1
\ нумеpация начинается с нуля, индекс pавен единице
I 1 =
\ выводим еще одно сообщение
IF TMSG: "Second loop" 1 THEN
LOOP

Но никак не пойму. :(
Я хочу сделать так чтобы ввод числа был от одной-начальной переменной к другой-конечной. После ввода числа, значение введенного числа должно сбрасываться для приема следующего числа, поэтому остальные команды мне не нужно писать, я полагаю. Я могу сделать так, чтобы был ввод 1 числа, а цикл никак не получается. Подскажите, пожалуйста, как надо.
Вот мои муки (сидел 8 часов подряд, начиная с самых азов):
#( ifthen
VARIABLE first
WatchWinActivate: "Enter Number"
Action:
WIN-ACTIVE: "Enter Number"
SEND-KEYS: "%first @%"
WIN-CLICK: "Enter Number" "&OK"
WIN-ACTIVE: "Enter Number"
500 first DO
I 1 = SEND-KEYS: "%first @%"
IF
THEN
LOOP
)#

P.S. Валерий, особенно, на Вашу помощь надеюсь!
bilivob
 
Posts: 5
Joined: Sun, 03 Oct 2004, 01:29

Postby Valery_Kondakoff » Sun, 03 Oct 2004, 13:46

Не очень понял суть проблемы. В доке, вроде, все ясно написано. Ну, вот, например, цикл, который будет длиться, пока значение переменной не станет больше 500.

Code: Select all
#( ifthen1
NoActive
VARIABLE first
Action:
START-APP: "notepad.exe"
PAUSE: 1000
WIN-ACTIVE: "*Notepad"
IF
    BEGIN
    SEND-KEYS: "%first @%"
    first @ 100 + first !
    PAUSE: 300
    \ until first < 500
    first @ 500 >
    UNTIL
THEN
)#
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Уточнение вопроса.

Postby bilivob » Sun, 03 Oct 2004, 20:45

Спасибо, да цикл работает, но мне надо немного другое. Уточняю, что мне нужно, чтобы в notepad.exe набиралось не нужное число констант (как в примере пять нулей), а числовые значения по порядку, вот так: 0123456789101112131415... и т.д., (т.е. чтобы набирался 0, за ним 1 и далее по порядку) допустим до 2000.
Пробовал ввводить вторую переменную, но что-то не работает:
#( ifthen5
NoActive
VARIABLE first
VARIABLE sec
Action:
START-APP: "notepad.exe"
PAUSE: 1000
WIN-ACTIVE: "*Notepad"
IF
BEGIN
SEND-KEYS: "%sec @%"
first @ 100 + sec !
PAUSE: 300
sec @ 500 <
UNTIL
THEN
)#
bilivob
 
Posts: 5
Joined: Sun, 03 Oct 2004, 01:29

Postby Valery_Kondakoff » Sun, 03 Oct 2004, 22:47

Code: Select all
#( ifthen2
NoActive
VARIABLE first
Action:
START-APP: "notepad.exe"
PAUSE: 1000
WIN-ACTIVE: "*Notepad"
IF
    BEGIN
    SEND-KEYS: "%first @%"
    first @ 1 + first !
    PAUSE: 300
    \ until first < 2000
    first @ 2000 >
    UNTIL
THEN
)#


ы?
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Что мне нужно для полного счастья :)

Postby bilivob » Mon, 04 Oct 2004, 09:32

Спасибо Валерий, заработало!
Но для полного счастья мне желательно, чтобы было:
Задача: набирать числа одновременно в двух(трех и т.д., чтобы можно было задать) окнах прогаммы.
Проблема: при запуске нескольких окон программы у каждого окна одинаковый заголовок окна, изменить заголовок окна нельзя.
Если запустить две задачи, то происходит путаница из-за одинаковых имен окон, и поэтому набор происходит только в одном окне. Как по отличающемуся содержимому окна можно запускать для каждого окна отдельную задачу?
Предполагаемое решение:
Например, можно ли сделать задать условие:
Если в содержимых окнах содержится разный текст, апример: "Первый набор" в одном и "Второй набор" во втором", возможно ли задать такое условие:
<текст в содержимом окне такой-то> IF <набор в первом окне> ELSE <набор во втором окне> THEN
и если да то как это сделать?

Наиболее близкое из того, что я нашел:
" WatchClipboard: "text_pattern"
Срабатывает если содержимое буфера обмена подпадает под указанную маску."
Вот если бы было: "Срабатывает если содержимое окна подпадает под указанную маску."
bilivob
 
Posts: 5
Joined: Sun, 03 Oct 2004, 01:29

Postby VK » Mon, 04 Oct 2004, 10:11

я думаю, в такой ситуации надо при появлении окна запоминать его WIN-HWND и именно по нему потом различать окна с одинаковым заголовком. подробности - в доках.
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Postby bilivob » Mon, 04 Oct 2004, 13:18

VK (far_away) wrote:я думаю, в такой ситуации надо при появлении окна запоминать его WIN-HWND и именно по нему потом различать окна с одинаковым заголовком. подробности - в доках.

Отличный совет! Теперь разбираюсь. Параллельно возник еще вопрос: как переключаться поочередно между окнами используя WIN-ACTIVATE (двумя, тремя окнами и т.д.) ? Просьба, приведите пример.
bilivob
 
Posts: 5
Joined: Sun, 03 Oct 2004, 01:29

Postby VK » Mon, 04 Oct 2004, 13:29

суть проблемы мне непонятна.

Code: Select all
WIN-ACTIVATE: "win_pattern1"
\ ...
WIN-ACTIVATE: "win_pattern2"
\ ...
WIN-ACTIVATE: "win_pattern3"
\ ...
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17

Конечная цель.

Postby bilivob » Wed, 06 Oct 2004, 11:21

Благодарю за советы, но конечной цели я так и не достиг.
Мне бы хотелось организовать цикл с одновременным набором чисел в двух окнах. Такое возможно?
То есть не переключаясь между окнами, пусть и быстро переключаясь, а именно одновременно. Мне это важно, с целью достижения большой скорости.
Пока у меня так не получается. Да я смог сделать, чтобы числа попеременно вводились в окна, но скорость таким образом очень мала и меня не устраивает.
Я пробовал запускать две задачи параллельно, но в таком случае происходит путаница: числа набираются либо в одном окне, либо в другом. Одномоментности не получается.
Есть ли какой-нибудь вариант?
bilivob
 
Posts: 5
Joined: Sun, 03 Oct 2004, 01:29

Postby VK » Wed, 06 Oct 2004, 12:22

вводить числа в разные окна можно только переключаясь между этими окнами (если конечно, программа не имеет интерфейса для ввода чисел из командной строки).
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 4 guests