Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: security on November 13, 2015, 08:18:48 PM
-
Здравствуйте уважаемые члены сообщества.
Подскажите как лучше организовать данную задачу:
1) Прочитать текстовый файл с логином и паролем (разделитесь например символ ";")
2) В цикле выполнить определенную команду по вводу этого логина и пароля (keystring не работает), отсюда появилась идея может требуется функция, которая разделит строку посимвольно, определит код символа и выполняет ввод с помощью keypress
3) Сабмитит кнопку логин, получает определенные бонусы в игре.
-
//Создаешь рядом со скриптом файл "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)
// тут команды после входа
//Каждый новый проход будет считываться новая строка с логином и паролем
-
Спасибо большое, да еще и за готовый пример. Очень ценный форум!
Сейчас попробую это добавить в свой проект.
P.S. Отдельное спасибо за оперативный ответ
-
Пока вижу только одну проблему - использование буфера обмена, так как если человек работает активно за компьютером, так же активно использует и clipboard, но думаю это не большая проблема. Как только разберусь с задачей обязательно отпишу о результатах
-
Подскажите пожалуйста еще вот что, как организовать цикл (список аккаунтов с логинами и паролями), я хочу сделать скрипт для обхода всех своих мультов ежедневно для получения бонусов. А занятие буфера обмена на доли секунд не должны повлиять на параллельную работу все же я думаю
-
Подскажите пожалуйста еще вот что, как организовать цикл (список аккаунтов с логинами и паролями), я хочу сделать скрипт для обхода всех своих мультов ежедневно для получения бонусов. А занятие буфера обмена на доли секунд не должны повлиять на параллельную работу все же я думаю
Тут вроде было. Поищи.
Примерно так.
Создаешь два файла. 1,Логины.txt 2, Пароли.txt
Пусть твоих аккаунтов будет 8 штук.
Сначала логин.
Считываешь из файла строку № 8 в буфер.
TFREAD ("file", str_n) - строковая функция; считывает строку из файла
Параметры
file - имя файла
str_n - номер строки в файле
Вставляешь себе в браузер.
Потом записываешь ее первой сверху в файл , а эту номер 9(!) удаляешь.
TFWRITE ("file", "str", [str_n]) - записывает строку в файл
TFDELETE ("file", str_n) - удаляет строку из файла
То же самое с паролями.
Они будут каруселью кружиться.
Вроде несложно.
-
Спасибо за помощь, поискал по форуму чтение, совместил код
#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.
Пытался слипы сделать побольше, все равно не помогает, кто-то сталкивался?
-
Обычно в самом верху скрипта пишу саб команды.
Для твоего случая такая
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()
-
Спасибо за совет, саб команды или как я их называю процедуурами действительно удобнее пользоваться и код компактнее выходит.
Ваш вариант
Ничего не происходит
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
(до этого вставлялась м, я отключил вообще русскую
раскладку в блюстэксе)
sub(paste)
waitms(150)
keydown(#CTRL)
waitms(rnd(15,65))
keypress(#V)
waitms(rnd(15,65))
keyup(#CTRL)
waitms(150)
end_sub
Возможно в эмуляторе как-то коряво работает данная комбинация, не смогли бы мне помочь написать процедуру, которая берет исходную строку
разбивает посимвольно, и нажимает keypress так же посимпольно? так как в этом варианте я хотя бы уверен, что он сработает
-
У меня не было проблем в Блюстакс.
Проверь активацию окна пароля. Я два , а то и три раза туда кликаю, чтобы именно его активировать , перед выполнением команды past() .
п.с.
Имей ввиду , что команда keypress(#V) обязательно поставит букву V . Нужно сделать "контрл+в".
-
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода
-
мне почемуто кажется, что ты используеш привязку....
-
Дак я скидывал код, там привязка активируется автоматически, да
-
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода
Бывают упертые случаи.
Ну а что тебе мешает отдельно записать командой альт-R ручной ввод каждого пароля и логина?
Сохраняй под нужным именем.
Потом вызывай нужный саб или инклуд.
-
Дак я скидывал код, там привязка активируется автоматически, да
ну так связка ктрл+V с привязкой не будет работать. зажатия кнопок в привязке не работают.
почитай вот здесь http://crapware.aidf.org/forum/index.php?topic=1728.0
можеш еще попроболвать кейстринг вот отсюда http://crapware.aidf.org/forum/index.php?topic=2111.0
-
Спасибо, прочитал. Жаль, что не работает. Postmessage тоже не получилось, а keystring к сожалению не получился еще с самого начала, я это тоже укащщзывал. так как же быть может стоит написать процедуру как я предложил? в цикле побуквенно читаем и нажимаем. у меня единственная трудность как из символа получить его ASCII код и как читается строка посимвольно в clickermann?
-
Спасибо, прочитал. Жаль, что не работает. Postmessage тоже не получилось, а keystring к сожалению не получился еще с самого начала, я это тоже укащщзывал. так как же быть может стоит написать процедуру как я предложил? в цикле побуквенно читаем и нажимаем. у меня единственная трудность как из символа получить его ASCII код и как читается строка посимвольно в clickermann?
я ж написал, вазми кейстринг вот отсюда http://crapware.aidf.org/forum/index.php?topic=2111.0, именно там побуквенно читает и нажимает, если несработает с помощью постмесадж который там присутствует, то замени его на кейпресс.
-
dramster, благодарю. Сейчас попробую. Я просто думал keystring которая встроенная в clickermann
-
Попробовал, ваш вариант в поле ввелось вместо моего текста -/0/-, попробовал на основе ваших исходников написать свою функцию, получилось то же самое.
Весь код прикладываю
#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
sub(sendkeys, $string)
for($j = 1, $j < strlen($string) + 1)
$char = strcut($string, $j, 1)
$key = 0
switch($char)
case("a")
$key=97
print("a")
case("b")
$key=98
print("b")
case("c")
$key=99
print("c")
case("d")
$key=100
print("d")
case("e")
$key=101
print("e")
case("f")
$key=102
print("f")
case("g")
$key=103
print("g")
case("h")
$key=104
print("h")
case("i")
$key=105
print("i")
case("j")
$key=106
print("j")
case("k")
$key=107
print("k")
case("l")
$key=108
print("l")
case("m")
$key=109
print("m")
case("n")
$key=110
print("n")
case("o")
$key=111
print("o")
case("p")
$key=112
print("p")
case("q")
$key=113
print("q")
case("r")
$key=114
print("r")
case("s")
$key=115
print("s")
case("t")
$key=116
print("t")
case("u")
$key=117
print("u")
case("v")
$key=118
print("v")
case("w")
$key=119
print("w")
case("x")
$key=120
print("x")
case("y")
$key=121
print("y")
case("z")
$key=122
print("z")
case("0")
$key=48
print("0")
case("1")
$key=49
print("1")
case("2")
$key=50
print("2")
case("3")
$key=51
print("3")
case("4")
$key=52
print("4")
case("5")
$key=53
print("5")
case("6")
$key=54
print("6")
case("7")
$key=55
print("7")
case("8")
$key=56
print("8")
case("9")
$key=57
print("9")
case("@")
$key=64
print("@")
case(".")
$key=46
print(".")
end_switch
keypress($key)
waitms(rnd(16, 64))
end_cyc
end_sub
for($i = 1, $i < tfcount("accounts.txt") + 1)
$line = tfread("accounts.txt", $i)
$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($pause)
sendkeys($username)
waitms($pause)
keypress(#Enter)
waitms(50)
end_cyc
halt
Для любопытных записал видео работы.
Скажите пожалуйста, что может быть не так?
http://rghost.ru/7xzkYbh9s
-
Ой, забыл еще добавить. Почему-то эмулятор переходит в полноэкранный вид, хотя в коде этого нету!
-
сорри, я забыл, про мои коды клавиш (те что в а_кейстринг) они немного другие, работают в сообщении CHAR. коды кнопок, которые ты будеш использовать в кейпресс все в справке КМ есть - "приложение 1: коды клавиш"
-
попробуй вот так.
#include "alt_winmode.cms"
$hwnd = wndfind("BlueStacks App Player")
$pause = 1000
if($hwnd = 0)
print("BlueStasks не найден")
halt
end_if
// Нажимаем на аватар
A_LCLICK(36, 100, $hwnd)
waitms($pause)
// Нажимаем поменять аккаунт
A_LCLICK(532, 655, $hwnd)
waitms($pause)
// Нажимаем ввод почты
A_LCLICK(800, 400, $hwnd)
waitms(50)
A_KEYSTRING ("test@тест.ру", 5, $hwnd)
// Кликаем на пустое поле для подтверждение ввода
A_LCLICK(800, 450, $hwnd)
waitms($pause)
halt
alt_winmode.cms естественно должен быть рядом с основным скриптом. еще проверь, чтобы wndfind("BlueStacks App Player") был равен тому hwnd, который в поле ввода (направить курсор туда где вводить логин и в кликермане проверить hwnd) . для надежности можно попробовать ввести его вручную.
и еще, keys.txt также долженбыть в одном коталоге с alt_winmode.cms и основным скриптом.
с этим варианотом привязываться необязательно.
-
Попробовал твой вариант, к сожалению тоже не поддерживаются символ точка и собака, его и в справке нету.
Я поменял размер регистра букв и сразу все заработало в моем коде, только не печатается как уже говорил точка и @.
Эх, как жаль( Похоже нету больше вариантов
-
если сильно постараться, можно добавить точку и @, 5-10мин, и всё будет готово, добавлю.
кстати в блокноте все символы работают четко
(http://i.imgur.com/m85lGWB.png)
ты когда скачиваеш keys.txt с форума, ты его главное не открывай, ато блокнот может в нем чето напортачить с кодировками. у меня, если я открою keys.txt в блокноте, то перестают нажиматься русск символы.
-
ну вот мне кажется все же какая-то специфика есть в этом эмуляторе(
-
ну вот попробуй такой вариант
//A_KEYSTRING
SUB(A_KEYSTRING, $A_str, $A_delay, $A_hwnd)
$A_kbl=GETKBLAYOUT($A_hwnd)
IF($A_kbl ! 1049)
setkblayout($A_hwnd, 1049)
END_IF
FOR($A_nstr=1,$A_nstr<STRLEN ($A_str)+1)
$A_l=STRCUT ($A_str, $A_nstr, 1)
IF(ARRSIZE ($A_keys_arr) = 0)
TFREADARR ("keys.txt", $A_keys_arr)
END_IF
IF(STRMD5($A_l) = "518ED29525738CEBDAC49C49E60EA9D3")
$A_mess = 0x0102
postmessage($A_hwnd,$A_mess,64,0)
waitms($A_delay)
print("дополнение @")
ELSE
IF(STRMD5($A_l) = "5058F1AF8388633F609CADB75A75DC9D")
$A_mess = 0x0102
postmessage($A_hwnd,$A_mess,46,0)
waitms($A_delay)
print("дополнение .")
ELSE
FOR($A_a=1,$A_a<ARRSIZE ($A_keys_arr),2)
IF($A_keys_arr[$A_a] = $A_l)
$A_key = $A_keys_arr[$A_a-1]
IF($A_key = 46)
IF(STRMD5($A_l) ! "5058F1AF8388633F609CADB75A75DC9D")
$A_key = 48
END_IF
END_IF
IF((($A_key > 64)&($A_key < 91))|(($A_key > 185)&($A_key < 223)))
$A_mess = 0x0100
else
$A_mess = 0x0102
END_IF
IF($A_key > 0)
postmessage($A_hwnd,$A_mess,$A_key,0)
waitms($A_delay)
END_IF
$A_a=999
END_IF
END_CYC
END_IF
END_IF
END_CYC
IF($A_kbl!GETKBLAYOUT($A_hwnd))
setkblayout($A_hwnd, $A_kbl)
END_IF
END_SUB
$hwnd = wndfind("BlueStacks App Player")
wait(5)
A_KEYSTRING ("test@тест.ру", 5, $hwnd)
halt
опять же, keys.txt рядом с основным скриптом.
-
Чувак, спасибо тебе большое за активную помощь, но к сожалению postmessage не работает конструкция, поэтому и символы эти не получается послать, то есть твой код в моем проекте не работает:( Придется ждать обновления и просить разработчика, чтобы добавил данные символы в поддержку к keypress
-
Попробовал даже добавить в const.txt
#DOT 46
#DOG 64
К сожалению вызов keypress их не дает должного эффекта
-
ну и на последо еще 2 варианта, чтобы спалось хороше :D.
#include "alt_winmode.cms"
$hwnd = wndfind("BlueStacks App Player")
$pause = 1000
if($hwnd = 0)
print("BlueStasks не найден")
halt
end_if
// Нажимаем на аватар
A_LCLICK(36, 100, $hwnd)
waitms($pause)
// Нажимаем поменять аккаунт
A_LCLICK(532, 655, $hwnd)
waitms($pause)
// Нажимаем ввод почты
A_LCLICK(800, 400, $hwnd)
waitms(50)
TOCLIP("test@тест.ру")
A_KEYDOWN (#CTRL)
WAITMS (50)
A_KEYDOWN (#V)
WAITMS (50)
A_KEYUP (#V)
A_KEYUP (#CTRL)
// Кликаем на пустое поле для подтверждение ввода
A_LCLICK(800, 450, $hwnd)
waitms($pause)
halt
есть вероятность, что в конце "test@тест.ру" допишутся еще две буковки "VV"
второй вариант
$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
// Нажимаем на аватар
LCLICK(36, 100, $hwnd)
waitms($pause)
// Нажимаем поменять аккаунт
LCLICK(532, 655, $hwnd)
waitms($pause)
// Нажимаем ввод почты
LCLICK(800, 400, $hwnd)
waitms(50)
TOCLIP("test@тест.ру")
SENDMESSAGE ($hwnd, 0x0302, 0, 0)
wait(1)
// Кликаем на пустое поле для подтверждение ввода
A_LCLICK(800, 450, $hwnd)
waitms($pause)
halt
больше вариантов нет
-
и всё же, есть подозоения, что hwnd рабочего поля BlueStacks App Player отличается от самого окна.
на всякий случай проверь этим:
$hwnd = wndfind("BlueStacks App Player")
$pause = 1000
if($hwnd > 0)
wndgetinfo($hwnd, $x, $y, $size_x, $size_y)
WNDBUMP ($hwnd)
wait(1)
IF(HGET(int($x+($size_x/2)),int($y+($size_y/2))) = $hwnd)
print("все в порядке")
else
print("hwnd не тот")
print("верный hwnd ", HGET(int($x+($size_x/2)),int($y+($size_y/2))))
END_IF
else
print("BlueStasks не найден")
end_if
halt
-
Действительно
23:24:18 hwnd не тот
23:24:18 верный hwnd 0
Но возвращает ноль
-
не, чето не то. попробуй направь курсор на рабочее поле эмулятора, я посмотри какой его hwnd
(http://i.imgur.com/3FRsjLh.png)
попробуй ввести его в скрипт вручную, вместо wndfind("BlueStacks App Player")
-
А, да, так пробовал. Кликает верно в этом окне и работает именно с ним, но потом как доходит дело до ввода.... ппц)
-
С блокнотом все замечательно работает, а вот в BlueStacks такая вот проблема.
Истина где-то рядом.
-
я к чему переспрасил насчет hwnd, вот например в блокноте hwnd окна один, а hwnd текстового поля другой. если работать с окном, то клики будут работать в пределах этого окна, но если писать в него текст, то нажатия не дойдут до текстового поля, так как hwnd текстового поля другой. возможно у тебя также, клики срабатывают, а посыл символов идет не туду куда надо.
(http://i.imgur.com/OQ6C33k.png)
-
Да, я это уже понял. Я пытался определить по координанам, но возвращает тот же самый хэндл.
Похоже придется пока в штатном режиме без привязки к окну делать.
-
Дело все в самом эмуляторе действительно оказалось.
Сейчас начал писать без привязки к окну
#name "test"
$hwnd = wndfind("BlueStacks App Player")
$pause = 1000
if($hwnd > 0)
wndgetinfo($hwnd, $x, $y, $size_x, $size_y)
wndstate($hwnd, 1)
wndpos($hwnd, 250, 50)
for($i = 1, $i < tfcount("accounts.txt") + 1)
$line = tfread("accounts.txt", $i)
$username = strcut2($line, 1, strpos($line, ":") - 1)
$password = strcut2($line, strpos($line, ":") + 1, strlen($line))
lclick(300, 150)
waitms($pause)
lclick(800, 725)
waitms($pause)
lclick(1000, 475)
waitms($pause)
//toclip($username)
//sendmessage($hwnd, 0x0302, 0, 0)
//waitms($pause)
keypress(55)
waitms($pause)
keypress(64)
waitms($pause)
keypress(#Enter)
waitms($pause)
halt
end_cyc
else
print("BlueStasks не найден")
halt
end_if
halt
Символы так мне необходимые собака и точка не посылаются, а другие a-z0-9 посылаются без проблем.
Хэндлы полей ввода отличаются от родительского окна эмулятора, поэтому sendmessage, postmessage так же не работают с окном должным образом.
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
В андроиде вообще клавиатура с буквами и символами находятся по сути отдельно, возможно из-за этого такие ограничения.
Что, получается ничего не сделать уже?
-
А в эмуляторе случаем нету виртуальной клавиатуры? если есть, то можно набирать нужный текст с помощью кликов мышки.
"Если есть необходимость в отображении виртуальной клавиатуры на экране BlueStacks, то при вводе текста кликаем по значку клавиатуры в панели уведомлений и отключаем меню - Использовать_физическую_клавиатуру."
© Источник: http://xtreme.ws/mobile/1521128-skachat-bluestacks-hd-app-player-pro-01004321-rooted-mod-besplatno.html
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
сори, не внимательно прочитал пост. так я чегото не понял, с виртуальной клавиатуры не набирается текст?
-
Пардон за оффтоп. Не хочу плодить темы.
Подскажите , как удобнее кликерманом в текстовом файле просуммировать все цифры , находящиеся в 10-15 строках ?
-
Например есть у тебя текстовик со списком
1
2
3
4
5
Ложишь рядом со скриптом список с названием numbers.txt
$total = 0
for($i = 1, $i < tfcount("numbers.txt") + 1)
$number = tfread("numbers.txt", $i)
$total = $total + $number
end_cyc
print($total)
halt
В результате выполнения выведет на экран число 15, в сумме как раз 1 + 2 + 3 + 4 + 5
-
dramster, еще раз благодарю за то, что не обходишь стороной мой вопрос и за старания помочь.
Идею с тыканьем по виртуальной клавиатуре довольно сложна в реализации, стандартная которая идет в комплекте с эмулятором еще и глючная, попробую наверно установить то что ты посоветовал, но чувствуется мне, что ничего хорошего и надежного из этого не выйдет. Сегодня планирую поковыряться более глубоко в конфигурации BlueStacks, возможно там найду ответы на свои вопросы.
-
Пардон за оффтоп. Не хочу плодить темы.
Подскажите , как удобнее кликерманом в текстовом файле просуммировать все цифры , находящиеся в 10-15 строках ?
не совсем понятно что именно в файле, но прикинул что там может быть всё что угодно:
asd567
фыв:123
034-рп
3а3а 3а3а3
2.234
2,654
скрипт сумирует все цифры из этих семи строк:
FOR($a=1,$a<8) // читаем с первой по седьмую строку
$num = strfilter(TFREAD ("file.txt", $a), "123456789", 1) //фильтр строки
FOR($i=1,$i<STRLEN ($num)+1) //сумируем все найденные цифры
$sum = $sum + STRCUT($num, $i, 1)
END_CYC
END_CYC
print($sum)
halt
получили "74", надеюсь скрипт посчитал правильно :D
-
Спасибо )
Путь решения примерно понял .
Мой текст совсем простой , - обычные нули и единицы ( правда они динамически меняются).
Например, вот случай:
0
1
0
1
1
0
0
В сумме хочу получить цифру 3.
-
ЦИТРИН, вам и мой вариант, и вариант dramster подойдет вполне, у него просто учитывается еще то, что могут содержаться посторонние символы
-
Вопрос снимается, в процессе долгих игр с таймаутами удалось без привязки окна вставить в буфер.
Правда тут еще один возник вопрос, когда я копирую программно в буфер обмена, часто возникает подозрительная аномалия - вставляются данные которые я копировал до этого.
Очистка буфера методом toclip("") с пустыми данными не помогает решить проблему, даже перезапуск кликера. Скажите пожалуйста, кто-нибудь с подобным сталкивался? В чем может быть проблема
-
Отбой, проблема была в логике, к счастью. Автору сего творения респект и на пиво закину обязательно как будут деньги
-
// InstantCMS
#name "LogPass - InstantCMS"
//Создаешь рядом со скриптом файл "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(1070,355) // клик по полю логина (координаты свои)
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#TAB)
WAIT(2)
TOCLIP($pass) // скопировать пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // войти
WAIT(5)
LCLICK(1240,120) // выйти
// тут команды после входа
WAIT(5)
//Каждый новый проход будет считываться новая строка с логином и паролем
Подскажите, как можно отобрать случайные строки, скажем запускаешь первый раз и вставляется: 1-я, 7-я и 12-я строка, в следующий раз: 4-я, 9-я, 10-я, 12-я и 14-я строка...?
-
Подскажите, как можно отобрать случайные строки, скажем запускаешь первый раз и вставляется: 1-я, 7-я и 12-я строка, в следующий раз: 4-я, 9-я, 10-я, 12-я и 14-я строка...?
Вот нашел одну тему, где обсуждалось подобное - Случайный порядок (http://crapware.aidf.org/forum/index.php?topic=1965.0).
Еще где то было,... там 8 из 12 рандомно выбирали кажется. Не смог найти.
-
Ладно пусть будет так:
Создаю папку "CMD"
1.cmd
type LogPass.txt | shuffle.cmd > result.txt
2delstr.cmd
@echo off
set "file=result.txt"
>.tmp more +10 "%file%"& >nul move .tmp "%file%"
exit/b
3.cmd
del "D:\Portable\PortableApps\Clickermann v4.13 x64\LogPass.txt"
copy "result.txt" "D:\Portable\PortableApps\Clickermann v4.13 x64\LogPass.txt"
del *.tmp
del result.txt
shuffle.cmd
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET TmpFile=tmp%RANDOM%%RANDOM%.tmp
TYPE NUL >%Tmpfile%
FOR /F "tokens=*" %%i IN ('MORE') DO SET Key=!RANDOM!!RANDOM!!RANDOM!000000000000& ECHO !Key:~0,15!%%i>> %TmpFile%
FOR /F "tokens=*" %%i IN ('TYPE %TmpFile% ^| SORT') DO SET Line=%%i&ECHO.!Line:~15!
::DEL %TmpFile%
ENDLOCAL
P.S.:
Как рандомно перемешать все строки в очень большом файле?
https://toster.ru/q/336263 (https://toster.ru/q/336263)
Удаление первых 6-ти строк во всех текстовых файлах, находящихся в определённой папке
http://www.cyberforum.ru/cmd-bat/thread1596355.html (http://www.cyberforum.ru/cmd-bat/thread1596355.html)
-
Подскажите, как можно отобрать случайные строки, скажем запускаешь первый раз и вставляется: 1-я, 7-я и 12-я строка, в следующий раз: 4-я, 9-я, 10-я, 12-я и 14-я строка...?
TFREADARR("LogPass.txt", $arr_t)
$r = RND(3,4) // случайное количество считываемых строк 3-4
$i2 = 0
FOR($i = ARRSIZE($arr_t)-1, ($i>-1)&($i2<$r), -1)
INC($i2,1)
$n = RND(0,$i)
$log = STRCUT2 ($arr_t[$n], 1, STRPOS ($arr_t[$n], ":")-1)
$pass = STRCUT2 ($arr_t[$n], STRPOS ($arr_t[$n], ":")+1, STRLEN ($arr_t[$n]))
LCLICK(1070,355) // клик по полю логина (координаты свои)
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#TAB)
WAIT(2)
TOCLIP($pass) // скопировать пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // войти
WAIT(5)
// Каждый новый проход будет считываться новая строка с логином и паролем
$arr_t[$n] = $arr_t[$i]
$tmp = ARRPOP($arr_t)
END_CYC
UNDEFINE($arr_t)
-
Боже, чёрный котик - спасибо тебе.
#name "LogPass"
TFREADARR("LogPass.txt", $arr_t)
$r = RND(3,4) // случайное количество считываемых строк 3-4
$i2 = 0
FOR($i = ARRSIZE($arr_t)-1, ($i>-1)&($i2<$r), -1)
INC($i2,1)
$n = RND(0,$i)
$log = STRCUT2 ($arr_t[$n], 1, STRPOS ($arr_t[$n], ":")-1)
$pass = STRCUT2 ($arr_t[$n], STRPOS ($arr_t[$n], ":")+1, STRLEN ($arr_t[$n]))
LCLICK(1070,355) // клик по полю логина (координаты свои)
WAITMS (50)
TOCLIP($log) // скопировать логин в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#TAB)
WAIT(2)
TOCLIP($pass) // скопировать пароль в буфер
WAITMS (50)
KEYDOWN (#CTRL) // вставить
WAITMS (50)
KEYPRESS(#V)
WAITMS (50)
KEYUP (#CTRL)
WAITMS (100)
KEYPRESS(#ENTER) // войти
WAIT (5)
LCLICK(1240,120) // выйти
WAIT (5)
// Каждый новый проход будет считываться новая строка с логином и паролем
$arr_t[$n] = $arr_t[$i]
$tmp = ARRPOP($arr_t)
END_CYC
UNDEFINE($arr_t)
HALT