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

0 Members and 2 Guests are viewing this topic.

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #30 on: November 14, 2015, 11:25:17 PM »
Действительно

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

Но возвращает ноль

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #31 on: November 14, 2015, 11:30:22 PM »
не, чето не то. попробуй направь курсор на рабочее поле эмулятора, я посмотри какой его hwnd

попробуй ввести его в скрипт вручную, вместо wndfind("BlueStacks App Player")

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #32 on: November 14, 2015, 11:35:09 PM »
А, да, так пробовал. Кликает верно в этом окне и работает именно с ним, но потом как доходит дело до ввода.... ппц)

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #33 on: November 14, 2015, 11:40:45 PM »
С блокнотом все замечательно работает, а вот в BlueStacks такая вот проблема.
Истина где-то рядом.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #34 on: November 14, 2015, 11:45:26 PM »
я к чему переспрасил насчет hwnd, вот например в блокноте hwnd окна один, а hwnd текстового поля другой. если работать с окном, то клики будут работать в пределах этого окна, но если писать в него текст, то нажатия не дойдут до текстового поля, так как hwnd текстового поля другой. возможно у тебя также, клики срабатывают, а посыл символов идет не туду куда надо.

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #35 on: November 14, 2015, 11:54:09 PM »
Да, я это уже понял. Я пытался определить по координанам, но возвращает тот же самый хэндл.
Похоже придется пока в штатном режиме без привязки к окну делать.

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #36 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 так же не работают с окном должным образом.
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
В андроиде вообще клавиатура с буквами и символами находятся по сути отдельно, возможно из-за этого такие ограничения.
Что, получается ничего не сделать уже?

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #37 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
Я менял в эмуляторе виртуальную на физическую клавиатуру и обратно - все бесполезно.
сори, не внимательно прочитал пост. так я чегото не понял, с виртуальной клавиатуры не набирается текст?
« Last Edit: November 15, 2015, 05:24:31 PM by dramster »

ЦИТРИН

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

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #39 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

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #40 on: November 15, 2015, 07:47:17 PM »
dramster, еще раз благодарю за то, что не обходишь стороной мой вопрос и за старания помочь.
Идею с тыканьем по виртуальной клавиатуре довольно сложна в реализации, стандартная которая идет в комплекте с эмулятором еще и глючная, попробую наверно установить то что ты посоветовал, но чувствуется мне, что ничего хорошего и надежного из этого не выйдет. Сегодня планирую поковыряться более глубоко в конфигурации BlueStacks, возможно там найду ответы на свои вопросы.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Ввод текста
« Reply #41 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

ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Posts: 484
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • View Profile
Re: Ввод текста
« Reply #42 on: November 16, 2015, 02:06:24 AM »
Спасибо )
Путь решения примерно понял .
Мой текст совсем простой , - обычные нули и единицы ( правда  они динамически меняются).
 Например, вот случай:
0
1
0
1
1
0
0

В сумме хочу получить цифру  3.
Бабочки полёт будит тихую поляну в солнечном свету...

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #43 on: November 16, 2015, 10:35:18 AM »
ЦИТРИН, вам и мой вариант, и вариант dramster подойдет вполне, у него просто учитывается еще то, что могут содержаться посторонние символы

security

  • Освоившийся
  • **
  • Posts: 68
    • View Profile
Re: Ввод текста
« Reply #44 on: November 22, 2015, 11:37:15 AM »
Вопрос снимается, в процессе долгих игр с таймаутами удалось без привязки окна вставить в буфер.
Правда тут еще один возник вопрос, когда я копирую программно в буфер обмена, часто возникает подозрительная аномалия - вставляются данные которые я копировал до этого.
Очистка буфера методом toclip("") с пустыми данными не помогает решить проблему, даже перезапуск кликера. Скажите пожалуйста, кто-нибудь с подобным сталкивался? В чем может быть проблема