Author Topic: Поле ввода > ответ из txt  (Read 2547 times)

0 Members and 1 Guest are viewing this topic.

mAramiXx

  • Освоившийся
  • **
  • Posts: 34
    • View Profile
Поле ввода > ответ из txt
« on: May 06, 2016, 06:03:14 PM »
Прощу прощения, но у меня еще один не большой вопрос) Не могу разобраться как из txt записывать поочередно\рандомно строчки в поле ввода после клика на него(конец кода). Как это можно реализовать? Подскажите пожалуйста  :-[
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "novoe.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      goto(begin)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

begin:
wait(1)
LCLICK(802,385)  // otvetit
wait(1)
LCLICK(579,609)  // okno vvoda
wait(1)
$filename = "otvet.txt"

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поле ввода > ответ из txt
« Reply #1 on: May 06, 2016, 08:27:40 PM »
Нафига ж ты goto(begin) в цикл вставил? Мало того что выпрыгивать из цикла не рекомендуется, так этот прыжок не имеет смысла потому что выполнение и так туда пойдет! $check = 1 переменная изменилась, выполнение дойдет до конца цикла , начнет его за ново, условие не верно, цикл пропускается, выполнение идет после цикла. Вот так это работает.

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "novoe.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

wait(1)
LCLICK(802,385)  // otvetit
wait(1)
LCLICK(579,609)  // okno vvoda
wait(1)

TOCLIP(RND(1,TFCOUNT("otvet.txt"))) // читаем рандомную строку из файла в буфер
WAITMS(50)

KEYDOWN (#CTRL) // вставляем
WAITMS (50)
KEYPRESS(#V)
KEYUP (#CTRL)
wait(1)

mAramiXx

  • Освоившийся
  • **
  • Posts: 34
    • View Profile
Re: Поле ввода > ответ из txt
« Reply #2 on: May 07, 2016, 10:03:12 AM »
Нафига ж ты goto(begin) в цикл вставил? Мало того что выпрыгивать из цикла не рекомендуется, так этот прыжок не имеет смысла потому что выполнение и так туда пойдет! $check = 1 переменная изменилась, выполнение дойдет до конца цикла , начнет его за ново, условие не верно, цикл пропускается, выполнение идет после цикла. Вот так это работает.

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "novoe.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

wait(1)
LCLICK(802,385)  // otvetit
wait(1)
LCLICK(579,609)  // okno vvoda
wait(1)

TOCLIP(RND(1,TFCOUNT("otvet.txt"))) // читаем рандомную строку из файла в буфер
WAITMS(50)

KEYDOWN (#CTRL) // вставляем
WAITMS (50)
KEYPRESS(#V)
KEYUP (#CTRL)
wait(1)
Оно выводит 0 или 1  :o

mAramiXx

  • Освоившийся
  • **
  • Posts: 34
    • View Profile
Re: Поле ввода > ответ из txt
« Reply #3 on: May 07, 2016, 10:06:49 AM »
Code: (clickermann) [Select]
$random = rnd(0,700)
TOCLIP(TFREAD("otvet.txt", $random))

 сработало вот так, только теперь кодировка полетела  ;D
« Last Edit: May 07, 2016, 10:23:25 AM by mAramiXx »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поле ввода > ответ из txt
« Reply #4 on: May 07, 2016, 10:35:58 AM »
Да точно, функцию чтения я забыл написать.

Вот верный вариант
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "novoe.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

wait(1)
LCLICK(802,385)  // otvetit
wait(1)
LCLICK(579,609)  // okno vvoda
wait(1)

TOCLIP(TFREAD("otvet.txt", RND(1,TFCOUNT("otvet.txt")))) // читаем рандомную строку из файла в буфер
WAITMS(50)

KEYDOWN (#CTRL) // вставляем
WAITMS (50)
KEYPRESS(#V)
KEYUP (#CTRL)
wait(1)

На счет кодировок.
Нужно изменить параметры в реестре и перезагрузить систему.
Code: [Select]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"

Также кодировка не будет ломаться если раскладки кликера и целевого окна будут одинаковыми Ru

mAramiXx

  • Освоившийся
  • **
  • Posts: 34
    • View Profile
Re: Поле ввода > ответ из txt
« Reply #5 on: May 07, 2016, 10:40:28 AM »
Работает! ::) спасибо)