Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: mAramiXx on May 06, 2016, 06:03:14 PM

Title: Поле ввода > ответ из txt
Post by: mAramiXx 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"
Title: Re: Поле ввода > ответ из txt
Post by: Oraven 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)
Title: Re: Поле ввода > ответ из txt
Post by: mAramiXx 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
Title: Re: Поле ввода > ответ из txt
Post by: mAramiXx on May 07, 2016, 10:06:49 AM
Code: (clickermann) [Select]
$random = rnd(0,700)
TOCLIP(TFREAD("otvet.txt", $random))

 сработало вот так, только теперь кодировка полетела  ;D
Title: Re: Поле ввода > ответ из txt
Post by: Oraven 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
Title: Re: Поле ввода > ответ из txt
Post by: mAramiXx on May 07, 2016, 10:40:28 AM
Работает! ::) спасибо)