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

Основной раздел => Использование => Topic started by: security on November 13, 2015, 08:18:48 PM

Title: Ввод текста
Post by: security on November 13, 2015, 08:18:48 PM
Здравствуйте уважаемые члены сообщества.
Подскажите как лучше организовать данную задачу:
1) Прочитать текстовый файл с логином и паролем (разделитесь например символ ";")
2) В цикле выполнить определенную команду по вводу этого логина и пароля (keystring не работает), отсюда появилась идея может требуется функция, которая разделит строку посимвольно, определит код символа и выполняет ввод с помощью keypress
3) Сабмитит кнопку логин, получает определенные бонусы в игре.
Title: Re: Ввод текста
Post by: Oraven 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)

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

//Каждый новый проход будет считываться новая строка с логином и паролем
Title: Re: Ввод текста
Post by: security on November 13, 2015, 11:56:48 PM
Спасибо большое, да еще и за готовый пример. Очень ценный форум!
Сейчас попробую это добавить в свой проект.
P.S. Отдельное спасибо за оперативный ответ
Title: Re: Ввод текста
Post by: security on November 13, 2015, 11:58:43 PM
Пока вижу только одну проблему - использование буфера обмена, так как если человек работает активно за компьютером, так же активно использует и clipboard, но думаю это не большая проблема. Как только разберусь с задачей обязательно отпишу о результатах
Title: Re: Ввод текста
Post by: security on November 14, 2015, 03:49:40 PM
Подскажите пожалуйста еще вот что, как организовать цикл (список аккаунтов с логинами и паролями), я хочу сделать скрипт для обхода всех своих мультов ежедневно для получения бонусов. А занятие буфера обмена на доли секунд не должны повлиять на параллельную работу все же я думаю
Title: Re: Ввод текста
Post by: ЦИТРИН 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) - удаляет строку из файла
То же самое с паролями.
Они будут каруселью кружиться.
 Вроде несложно.
Title: Re: Ввод текста
Post by: security 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.
Пытался слипы сделать побольше, все равно не помогает, кто-то сталкивался?
Title: Re: Ввод текста
Post by: ЦИТРИН 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()
Title: Re: Ввод текста
Post by: security 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 так же посимпольно? так как в этом варианте я хотя бы уверен, что он сработает
Title: Re: Ввод текста
Post by: ЦИТРИН on November 14, 2015, 06:41:54 PM
У меня не было проблем в Блюстакс.
 Проверь активацию окна пароля. Я два , а то и три  раза туда кликаю,  чтобы именно его активировать , перед выполнением команды past() .
 п.с.
 Имей ввиду , что команда keypress(#V)  обязательно поставит букву V . Нужно  сделать  "контрл+в".
Title: Re: Ввод текста
Post by: security on November 14, 2015, 06:50:39 PM
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 07:01:28 PM
мне почемуто кажется, что ты используеш привязку....
Title: Re: Ввод текста
Post by: security on November 14, 2015, 07:02:56 PM
Дак я скидывал код, там привязка активируется автоматически, да
Title: Re: Ввод текста
Post by: ЦИТРИН on November 14, 2015, 07:03:50 PM
Попробовал трижды активировать, ставил слипы по секунде, к сожалению ктрл+в не работает, не вставляет в поле ввода
Бывают упертые случаи.
 Ну а что тебе  мешает  отдельно записать  командой альт-R   ручной ввод каждого пароля и логина?
Сохраняй под нужным именем.
Потом вызывай нужный саб или инклуд. 
Title: Re: Ввод текста
Post by: dramster 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
Title: Re: Ввод текста
Post by: security on November 14, 2015, 07:12:19 PM
Спасибо, прочитал. Жаль, что не работает. Postmessage тоже не получилось, а keystring к сожалению не получился еще с самого начала, я это тоже укащщзывал. так как же быть может стоит написать процедуру как я предложил? в цикле побуквенно читаем и нажимаем. у меня единственная трудность как из символа получить его ASCII код и как читается строка посимвольно в clickermann?
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 07:15:40 PM
Спасибо, прочитал. Жаль, что не работает. Postmessage тоже не получилось, а keystring к сожалению не получился еще с самого начала, я это тоже укащщзывал. так как же быть может стоит написать процедуру как я предложил? в цикле побуквенно читаем и нажимаем. у меня единственная трудность как из символа получить его ASCII код и как читается строка посимвольно в clickermann?

я ж написал, вазми кейстринг вот отсюда http://crapware.aidf.org/forum/index.php?topic=2111.0, именно там побуквенно читает и нажимает, если несработает с помощью постмесадж который там присутствует, то замени его на кейпресс.
Title: Re: Ввод текста
Post by: security on November 14, 2015, 07:48:41 PM
dramster, благодарю. Сейчас попробую. Я просто думал keystring которая встроенная в clickermann
Title: Re: Ввод текста
Post by: security on November 14, 2015, 09:11:27 PM
Попробовал, ваш вариант в поле ввелось вместо моего текста -/0/-, попробовал на основе ваших исходников написать свою функцию, получилось то же самое.
Весь код прикладываю

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

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
Title: Re: Ввод текста
Post by: security on November 14, 2015, 09:13:13 PM
Ой, забыл еще добавить. Почему-то эмулятор переходит в полноэкранный вид, хотя в коде этого нету!
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 09:21:41 PM
сорри, я забыл, про мои коды клавиш (те что в а_кейстринг) они немного другие, работают в сообщении CHAR. коды кнопок, которые ты будеш использовать в кейпресс все в справке КМ есть - "приложение 1: коды клавиш"
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 09:34:41 PM
попробуй вот так.
Code: (clickermann) [Select]
#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 и основным скриптом.

с этим варианотом привязываться необязательно.
Title: Re: Ввод текста
Post by: security on November 14, 2015, 09:47:46 PM
Попробовал твой вариант, к сожалению тоже не поддерживаются символ точка и собака, его и в справке нету.
Я поменял размер регистра букв и сразу все заработало в моем коде, только не печатается как уже говорил точка и @.
Эх, как жаль( Похоже нету больше вариантов
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 09:51:26 PM
если сильно постараться, можно добавить точку  и @, 5-10мин, и всё будет готово, добавлю.

кстати в блокноте все символы работают четко
(http://i.imgur.com/m85lGWB.png)
ты когда скачиваеш keys.txt с форума, ты его главное не открывай, ато блокнот может в нем чето напортачить с кодировками. у меня, если я открою keys.txt в блокноте, то перестают нажиматься русск символы.
Title: Re: Ввод текста
Post by: security on November 14, 2015, 10:00:07 PM
ну вот мне кажется все же какая-то специфика есть в этом эмуляторе(
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 10:14:54 PM
ну вот попробуй такой вариант
Code: (clickermann) [Select]
//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 рядом с основным скриптом.




Title: Re: Ввод текста
Post by: security on November 14, 2015, 10:37:58 PM
Чувак, спасибо тебе большое за активную помощь, но к сожалению postmessage не работает конструкция, поэтому и символы эти не получается послать, то есть твой код в моем проекте не работает:( Придется ждать обновления и просить разработчика, чтобы добавил данные символы в поддержку к keypress
Title: Re: Ввод текста
Post by: security on November 14, 2015, 10:45:17 PM
Попробовал даже добавить в const.txt
Code: [Select]
#DOT 46
#DOG 64

К сожалению вызов keypress их не дает должного эффекта
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 10:58:08 PM
ну и на последо еще 2 варианта, чтобы спалось хороше  :D.
Code: (clickermann) [Select]
#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"

второй вариант
Code: (clickermann) [Select]
$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
больше вариантов нет
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 11:12:43 PM
и всё же, есть подозоения, что hwnd рабочего поля BlueStacks App Player отличается от самого окна.
на всякий случай проверь этим:
Code: (clickermann) [Select]
$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
Title: Re: Ввод текста
Post by: security on November 14, 2015, 11:25:17 PM
Действительно

Quote
23:24:18 hwnd не тот
23:24:18 верный hwnd 0

Но возвращает ноль
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 11:30:22 PM
не, чето не то. попробуй направь курсор на рабочее поле эмулятора, я посмотри какой его hwnd
(http://i.imgur.com/3FRsjLh.png)
попробуй ввести его в скрипт вручную, вместо wndfind("BlueStacks App Player")
Title: Re: Ввод текста
Post by: security on November 14, 2015, 11:35:09 PM
А, да, так пробовал. Кликает верно в этом окне и работает именно с ним, но потом как доходит дело до ввода.... ппц)
Title: Re: Ввод текста
Post by: security on November 14, 2015, 11:40:45 PM
С блокнотом все замечательно работает, а вот в BlueStacks такая вот проблема.
Истина где-то рядом.
Title: Re: Ввод текста
Post by: dramster on November 14, 2015, 11:45:26 PM
я к чему переспрасил насчет hwnd, вот например в блокноте hwnd окна один, а hwnd текстового поля другой. если работать с окном, то клики будут работать в пределах этого окна, но если писать в него текст, то нажатия не дойдут до текстового поля, так как hwnd текстового поля другой. возможно у тебя также, клики срабатывают, а посыл символов идет не туду куда надо.
(http://i.imgur.com/OQ6C33k.png)
Title: Re: Ввод текста
Post by: security on November 14, 2015, 11:54:09 PM
Да, я это уже понял. Я пытался определить по координанам, но возвращает тот же самый хэндл.
Похоже придется пока в штатном режиме без привязки к окну делать.
Title: Re: Ввод текста
Post by: security on November 15, 2015, 01:29:16 PM
Дело все в самом эмуляторе действительно оказалось.
Сейчас начал писать без привязки к окну

Code: (clickermann) [Select]
#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 так же не работают с окном должным образом.
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
В андроиде вообще клавиатура с буквами и символами находятся по сути отдельно, возможно из-за этого такие ограничения.
Что, получается ничего не сделать уже?
Title: Re: Ввод текста
Post by: dramster on November 15, 2015, 04:58:30 PM
А в эмуляторе случаем нету виртуальной клавиатуры? если есть, то можно набирать нужный текст с помощью кликов мышки.



"Если есть необходимость в отображении виртуальной клавиатуры на экране BlueStacks, то при вводе текста кликаем по значку клавиатуры в панели уведомлений и отключаем меню - Использовать_физическую_клавиатуру."
© Источник: http://xtreme.ws/mobile/1521128-skachat-bluestacks-hd-app-player-pro-01004321-rooted-mod-besplatno.html



Quote
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
сори, не внимательно прочитал пост. так я чегото не понял, с виртуальной клавиатуры не набирается текст?
Title: Re: Ввод текста
Post by: ЦИТРИН on November 15, 2015, 07:26:40 PM
Пардон за оффтоп. Не хочу плодить  темы.
Подскажите  ,  как удобнее  кликерманом   в текстовом файле просуммировать  все  цифры , находящиеся в 10-15 строках ?
Title: Re: Ввод текста
Post by: security on November 15, 2015, 07:44:01 PM
Например есть у тебя текстовик со списком

Quote
1
2
3
4
5

Ложишь рядом со скриптом список с названием numbers.txt

Code: (clickermann) [Select]

$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
Title: Re: Ввод текста
Post by: security on November 15, 2015, 07:47:17 PM
dramster, еще раз благодарю за то, что не обходишь стороной мой вопрос и за старания помочь.
Идею с тыканьем по виртуальной клавиатуре довольно сложна в реализации, стандартная которая идет в комплекте с эмулятором еще и глючная, попробую наверно установить то что ты посоветовал, но чувствуется мне, что ничего хорошего и надежного из этого не выйдет. Сегодня планирую поковыряться более глубоко в конфигурации BlueStacks, возможно там найду ответы на свои вопросы.
Title: Re: Ввод текста
Post by: dramster on November 16, 2015, 12:27:54 AM
Пардон за оффтоп. Не хочу плодить  темы.
Подскажите  ,  как удобнее  кликерманом   в текстовом файле просуммировать  все  цифры , находящиеся в 10-15 строках ?

не совсем понятно что именно в файле, но прикинул что там может быть всё что угодно:
Code: [Select]
asd567
фыв:123
034-рп

3а3а  3а3а3
2.234
2,654

скрипт сумирует все цифры из этих семи строк:
Code: (clickermann) [Select]
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
Title: Re: Ввод текста
Post by: ЦИТРИН on November 16, 2015, 02:06:24 AM
Спасибо )
Путь решения примерно понял .
Мой текст совсем простой , - обычные нули и единицы ( правда  они динамически меняются).
 Например, вот случай:
0
1
0
1
1
0
0

В сумме хочу получить цифру  3.
Title: Re: Ввод текста
Post by: security on November 16, 2015, 10:35:18 AM
ЦИТРИН, вам и мой вариант, и вариант dramster подойдет вполне, у него просто учитывается еще то, что могут содержаться посторонние символы
Title: Re: Ввод текста
Post by: security on November 22, 2015, 11:37:15 AM
Вопрос снимается, в процессе долгих игр с таймаутами удалось без привязки окна вставить в буфер.
Правда тут еще один возник вопрос, когда я копирую программно в буфер обмена, часто возникает подозрительная аномалия - вставляются данные которые я копировал до этого.
Очистка буфера методом toclip("") с пустыми данными не помогает решить проблему, даже перезапуск кликера. Скажите пожалуйста, кто-нибудь с подобным сталкивался? В чем может быть проблема
Title: Re: Ввод текста
Post by: security on November 22, 2015, 02:06:00 PM
Отбой, проблема была в логике, к счастью. Автору сего творения респект и на пиво закину обязательно как будут деньги
Title: Случайные строки
Post by: Simple Hosting on September 29, 2018, 09:32:32 AM
Code: (clickermann) [Select]
// 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-я строка...?
Title: Re: Случайные строки
Post by: Атеист on October 03, 2018, 07:52:53 PM
Подскажите, как можно отобрать случайные строки, скажем запускаешь первый раз и вставляется: 1-я, 7-я и 12-я строка, в следующий раз: 4-я, 9-я, 10-я, 12-я и 14-я строка...?

Вот нашел одну тему, где обсуждалось подобное - Случайный порядок (http://crapware.aidf.org/forum/index.php?topic=1965.0).
Еще где то было,... там 8 из 12 рандомно выбирали кажется. Не смог найти.
Title: Re: Ввод текста
Post by: Simple Hosting on October 05, 2018, 08:56:04 AM
Ладно пусть будет так:
Создаю папку "CMD"

1.cmd
Code: (cmd) [Select]
type LogPass.txt | shuffle.cmd > result.txt
2delstr.cmd
Code: (cmd) [Select]
@echo off
set "file=result.txt"
>.tmp more +10 "%file%"& >nul move .tmp "%file%"
exit/b

3.cmd
Code: (cmd) [Select]
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
Code: (cmd) [Select]
@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)
Title: Re: Случайные строки
Post by: Oraven on October 05, 2018, 09:37:06 AM
Подскажите, как можно отобрать случайные строки, скажем запускаешь первый раз и вставляется: 1-я, 7-я и 12-я строка, в следующий раз: 4-я, 9-я, 10-я, 12-я и 14-я строка...?

Code: (clickermann) [Select]
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)
Title: Немного подправил
Post by: Simple Hosting on October 05, 2018, 10:03:05 AM
Боже, чёрный котик - спасибо тебе.
Code: (clickermann) [Select]
#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