Author Topic: Ввод текста  (Read 22115 times)

0 Members and 1 Guest are viewing this topic.

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Ввод текста
« on: November 13, 2015, 08:18:48 PM »
Здравствуйте уважаемые члены сообщества.
Подскажите как лучше организовать данную задачу:
1) Прочитать текстовый файл с логином и паролем (разделитесь например символ ";")
2) В цикле выполнить определенную команду по вводу этого логина и пароля (keystring не работает), отсюда появилась идея может требуется функция, которая разделит строку посимвольно, определит код символа и выполняет ввод с помощью keypress
3) Сабмитит кнопку логин, получает определенные бонусы в игре.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Ввод текста
« Reply #1 on: November 13, 2015, 09:53:30 PM »
Code: (clickermann) [Select]
//Создаешь рядом со скриптом файл "LogPass.txt" и в него записываешь строки по образцу

//Тест1@mail.ru:111111111
//Тест2@mail.ru:абвгд
//Тест3@mail.ru:тестТестТЕСТ

//Сам скрипт:

IF(TFCOUNT("LogPass.txt") > $count)
   INC($count,1)
ELSE
   HALT
END_IF
$str = TFREAD ("LogPass.txt", $count)
$log = STRCUT2 ($str, 1, STRPOS ($str, ":")-1)
$pass = STRCUT2 ($str, STRPOS ($str, ":")+1, STRLEN ($str))

LCLICK(10,10) // клик по полю логина (координаты свои)
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)

KEYPRESS(#TAB)
WAITMS (50)

TOCLIP($pass) // скопировать пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // войти
WAIT(1)

// тут команды после входа

//Каждый новый проход будет считываться новая строка с логином и паролем
« Last Edit: November 13, 2015, 09:55:15 PM by Oraven »

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #2 on: November 13, 2015, 11:56:48 PM »
Спасибо большое, да еще и за готовый пример. Очень ценный форум!
Сейчас попробую это добавить в свой проект.
P.S. Отдельное спасибо за оперативный ответ

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #3 on: November 13, 2015, 11:58:43 PM »
Пока вижу только одну проблему - использование буфера обмена, так как если человек работает активно за компьютером, так же активно использует и clipboard, но думаю это не большая проблема. Как только разберусь с задачей обязательно отпишу о результатах

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #4 on: November 14, 2015, 03:49:40 PM »
Подскажите пожалуйста еще вот что, как организовать цикл (список аккаунтов с логинами и паролями), я хочу сделать скрипт для обхода всех своих мультов ежедневно для получения бонусов. А занятие буфера обмена на доли секунд не должны повлиять на параллельную работу все же я думаю

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Ввод текста
« Reply #5 on: November 14, 2015, 05:39:23 PM »
Подскажите пожалуйста еще вот что, как организовать цикл (список аккаунтов с логинами и паролями), я хочу сделать скрипт для обхода всех своих мультов ежедневно для получения бонусов. А занятие буфера обмена на доли секунд не должны повлиять на параллельную работу все же я думаю
Тут вроде было. Поищи.
Примерно так.
Создаешь два файла. 1,Логины.txt 2, Пароли.txt
Пусть твоих аккаунтов  будет 8 штук.
Сначала логин.
Считываешь из файла   строку № 8  в буфер.
Code: (clickermann) [Select]
TFREAD ("file", str_n) - строковая функция; считывает строку из файла
Параметры
file - имя файла
str_n - номер строки в файле
  Вставляешь себе в браузер. 
Потом записываешь ее первой сверху в файл , а эту  номер 9(!)   удаляешь.
TFWRITE ("file", "str", [str_n]) - записывает строку в файл
TFDELETE ("file", str_n) - удаляет строку из файла
То же самое с паролями.
Они будут каруселью кружиться.
 Вроде несложно.
Бабочки полёт будит тихую поляну в солнечном свету...

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #6 on: November 14, 2015, 06:03:32 PM »
Спасибо за помощь, поискал по форуму чтение, совместил код

Code: (clickermann) [Select]
#name "test"
 
$hwnd = wndfind("BlueStacks App Player")
$pause = 1000

if($hwnd > 0)
wndgetinfo($hwnd, $x, $y, $size_x, $size_y)
hset($hwnd, 1)
else
print("BlueStasks не найден")
halt
end_if

for($a = 1, $a < tfcount("accounts.txt") + 1)

$line = tfread("accounts.txt", $a)
$username = strcut2($line, 1, strpos($line, ":") - 1)
$password = strcut2($line, strpos($line, ":") + 1, strlen($line))

// Нажимаем на аватар
lclick(36, 100)
waitms($pause)

// Нажимаем поменять аккаунт
lclick(532, 655)
waitms($pause)

// Нажимаем ввод почты
lclick(800, 400)
waitms(50)

// Копируем имя пользователя в буфер
toclip($username)
waitms(50)

// Зажимаем клавишу ctrl
keydown(#CTRL)
waitms(50)

// Нажимаем клавишу v
keypress(#V)
waitms(50)

// Отпускаем клавишу ctrl
keyup(#CTRL)
waitms(50)

// Кликаем на пустое поле для подтверждение ввода
lclick(800, 450)
waitms($pause)

end_cyc

halt

Возникла другая проблема, после копирования в буфер сtrl + v не выполняется, вместо него в поле появляется буква м кириллическая, что на английской раскладке v.
Пытался слипы сделать побольше, все равно не помогает, кто-то сталкивался?

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Ввод текста
« Reply #7 on: November 14, 2015, 06:11:43 PM »
Обычно  в самом верху скрипта  пишу саб команды.
Для твоего случая такая
Code: (clickermann) [Select]
WAITMS (150)
SUB(past)
   WAITMS (150)
   KEYDOWN (#CTRL)
   WAITMS ( RND (15,65) )
   KEYDOWN (#V)
   WAITMS ( RND (15,65) )
   KEYUP (#V)
   KEYUP (#CTRL)
   WAITMS (150)
END_SUB
WAITMS (150)
Потом  в нужном месте   вызываю нужный саб
В твоем случае  будет  так
past()
Бабочки полёт будит тихую поляну в солнечном свету...

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #8 on: November 14, 2015, 06:29:38 PM »
Спасибо за совет, саб команды или как я их называю процедуурами действительно удобнее пользоваться и код компактнее выходит.
Ваш вариант

Ничего не происходит
Code: (clickermann) [Select]
sub(paste)
waitms(150)
keydown(#CTRL)
waitms(rnd(15,65))
keydown(#V)
waitms(rnd(15,65))
keyup(#V)
keyup(#CTRL)
waitms(150)
end_sub

если вместо keydown на клавишу v, я ставлю keypress, то вставляется как я писал выше в поле только буква v
(до этого вставлялась м, я отключил вообще русскую
раскладку в блюстэксе)

Code: (clickermann) [Select]
sub(paste)
waitms(150)
keydown(#CTRL)
waitms(rnd(15,65))
keypress(#V)
waitms(rnd(15,65))
keyup(#CTRL)
waitms(150)
end_sub

Возможно в эмуляторе как-то коряво работает данная комбинация, не смогли бы мне помочь написать процедуру, которая берет исходную строку
разбивает посимвольно, и нажимает keypress так же посимпольно? так как в этом варианте я хотя бы уверен, что он сработает

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Ввод текста
« Reply #9 on: November 14, 2015, 06:41:54 PM »
У меня не было проблем в Блюстакс.
 Проверь активацию окна пароля. Я два , а то и три  раза туда кликаю,  чтобы именно его активировать , перед выполнением команды past() .
 п.с.
 Имей ввиду , что команда keypress(#V)  обязательно поставит букву V . Нужно  сделать  "контрл+в".
Бабочки полёт будит тихую поляну в солнечном свету...

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #10 on: November 14, 2015, 06:50:39 PM »
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #11 on: November 14, 2015, 07:01:28 PM »
мне почемуто кажется, что ты используеш привязку....

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #12 on: November 14, 2015, 07:02:56 PM »
Дак я скидывал код, там привязка активируется автоматически, да

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Ввод текста
« Reply #13 on: November 14, 2015, 07:03:50 PM »
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода
Бывают упертые случаи.
 Ну а что тебе  мешает  отдельно записать  командой альт-R   ручной ввод каждого пароля и логина?
Сохраняй под нужным именем.
Потом вызывай нужный саб или инклуд. 
Бабочки полёт будит тихую поляну в солнечном свету...

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #14 on: November 14, 2015, 07:05:52 PM »
Дак я скидывал код, там привязка активируется автоматически, да
ну так связка ктрл+V  с привязкой не будет работать. зажатия кнопок в привязке не работают.
почитай вот здесь http://crapware.aidf.org/forum/index.php?topic=1728.0

можеш еще попроболвать кейстринг вот отсюда http://crapware.aidf.org/forum/index.php?topic=2111.0
« Last Edit: November 14, 2015, 07:08:37 PM by dramster »