Сейчас на форуме: tyns777, zombi-vadim, zds (+5 невидимых)

 eXeL@B —› Программирование —› Получить handle контрола в HTML/FLASH.
Посл.ответ Сообщение


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 21 апреля 2015 20:20
· Личное сообщение · #1

Долго думал, как обозвать эту тему. Вообщем возникла необходимость управления HTML/FLASH common-контролами: edit/buttons, etc (контролы во FLASH имеют особую значимость). Мне представляется это возможным после получения их хендлов и посылки сообщений им напрямую (могу ошибаться). Подскажите, возможно ли получить их handle? Если да, то как? Или хотя бы пните, куда копать ?

| Сообщение посчитали полезным: Excelvrn


Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 21 апреля 2015 22:19
· Личное сообщение · #2

Виндовый Хэндл html-элемента не получить... там весь контейнер документа одно окно, и не имеет дочерних... как-то так... Но манипулировать html-элементами через COM-интерфейсы можно, для это лучше посмотреть в --> эту сторону <--

-----
IZ.RU


| Сообщение посчитали полезным: Rainbow

Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 21 апреля 2015 22:33 · Поправил: F_a_u_s_t
· Личное сообщение · #3

Смотри в сторону игровых ботов, есть 100500 вариантов управлять флешем, от хаков с инжектами до скриптовых биндов.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 21 апреля 2015 23:02 · Поправил: Rainbow
· Личное сообщение · #4

F_a_u_s_t пишет:
Смотри в сторону игровых ботов, есть 100500 вариантов управлять флешем, от хаков с инжектами до скриптовых биндов.


Так-то, может оно и так.. Только вот прежде чем докопаться до этих 100500 вариантов надо 100500 малвари безрезультатно отреверсить (ну видимо так уж повелось у ботоводов - малварь вкручивать, а то и вместо демки совать), после чего купить вместо демо-версии непонятно чего с непонятно чем фуловую (триальную, с подвязом к серверу), с навешенным VMProtom (тоже видимо традиция). Этот вариант мне приходил в голову, но если и будет рассмотрен, то в последнюю очередь. Альтернативы ?



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 21 апреля 2015 23:10 · Поправил: F_a_u_s_t
· Личное сообщение · #5

Rainbow пишет: Так-то, может оно и так.. Только вот прежде чем докопаться до этих 100500 вариантов надо 100500 малвари безрезультатно
habrahabr
stackoverflow
Бинды аналогично на github.com или в качестве альтернативы selenium, для него есть флеш драйвер.
flash-selenium к selenium есть другой драйвер.

| Сообщение посчитали полезным: Rainbow, DenCoder


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 21 апреля 2015 23:38 · Поправил: Rainbow
· Личное сообщение · #6

F_a_u_s_t пишет:
habrahabr
stackoverflow
Бинды аналогично на github.com или в качестве альтернативы selenium, для него есть флеш драйвер.
flash-selenium к selenium есть другой драйвер.


Ну хорошо, попробую покопать сторону манов по декомпилю флеша. Советы, личный опыт приветствуются, т.к., думаю, что значительно улучшат усваяемость. Вариант с Input'om - api mouse_event + keyboard_event - возможен. Однако, считаю такие подходы достойными ламеров-инвалидов, которые от незнания базовых принципов внутренней работы системы тупо поверхностно стремятся автоматизировать алгоритм юзер-действий.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 22 апреля 2015 00:40 · Поправил: F_a_u_s_t
· Личное сообщение · #7

Rainbow пишет:Однако, считаю такие подходы достойными ламеров-инвалидов, которые от незнания базовых принципов внутренней работы системы тупо поверхностно стремятся автоматизировать алгоритм юзер-действий.

О кликерах речи нет, варианты только с легитимным api, например с тем же ExternalInterface
Пример:
Code:
  1. ExternalInterface.addCallback("getColor", getColor);
  2. ...
  3. public function getColor():String 
  4. {
  5.       return COLORS[currentColorIndex % 3];
  6. }


Особо других вариантов нет, в flash engine идет байткод, можно конечно вклинится в работу, только потом придется самому парсить байткод, обрабатывать сообщения... возможно, но оно того не стоит, одно дело ioncube, там иначе никак, а здесь уже готовый интерфейс от разработчиков.
Ну или вариант по проще, sikuli для быстрого написания кликера.
Из всех известных мне вариантов самый удобный это selenium, позволяется обрабатывать сложные события, множество примеров и готовых скриптов, множество роликов, самопал с инжектами годен только для малвари.
Вспомнил, на хабре была статья sikuli




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 26 апреля 2015 11:45
· Личное сообщение · #8

F_a_u_s_t пишет:
варианты только с легитимным api, например с тем же ExternalInterface


Я так понял ExternalInterface - это единственный тру вариант. Как выяснилось, ExternalInterface запитан во флеше с 9й версии через ActiveX. Кодинг этого ActiveX вроде как ориентирован под ASP/JS/PHP. Однако мну такой расклад не совсем устраивает. ActiveX и на сях и на любом другом языке легко кодится. Собсно порылся исчо. Накопал сишные хидеры (возможно неполные) этих интерфейсов. Но доков по интерфейсам че-то не нашел. Есть у кого маны/доки по ActiveX интерфейсам флешевским ? Хидер с интересующими интерфейсами цепляю в аттач.



f3c2_26.04.2015_EXELAB.rU.tgz - axflash.rar



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 26 апреля 2015 12:31
· Личное сообщение · #9

Возможно будет полезно
https://metacpan.org/release/Wx-ActiveX

| Сообщение посчитали полезным: Rainbow


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 26 апреля 2015 12:57
· Личное сообщение · #10

TryAga1n пишет:
Возможно будет полезно
https://metacpan.org/release/Wx-ActiveX


Опять же, Perl...



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 26 апреля 2015 19:34
· Личное сообщение · #11

Rainbow пишет: ActiveX и на сях и на любом другом языке легко кодится

Не легко, слишком много ненужных телодвижений.
Помимо flash'a нужно учитывать подгружаемые js, html, в итоге придется еще биндить браузерный движок или же самому велосипедить.
Для плюсов есть врапперы, в гугле c++ flash player wrapper или c++ flash player binding.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 26 апреля 2015 19:38
· Личное сообщение · #12

F_a_u_s_t пишет:
Не легко, слишком много ненужных телодвижений.
Помимо flash'a нужно учитывать подгружаемые js, html, в итоге придется еще биндить браузерный движок или же самому велосипедить.
Для плюсов есть врапперы, в гугле c++ flash player wrapper или c++ flash player binding.


А чего сложного дернуть пару методов ком интерфеса-то ? CoCreateInstance никто не отменял. Просто доки нужны по интерфейсам и все. Не вижу никакой сложности.

Добавлено спустя 9 минут
Речи о плюсах не идет совсем ))) я это легко на асме навострячу.



Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 26 апреля 2015 21:08
· Личное сообщение · #13

Rainbow пишет:
Добавлено спустя 9 минут
Речи о плюсах не идет совсем ))) я это легко на асме навострячу.

я о томже.. както пару лет назад засматривался на эту тему вплане делфи.. бота хотелось.. но забил.. СоИнтерфейс причем к браузеру? то что нет описателей под язык.. да.. это некоторый гимор.. но дальше в чем проблема?

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 26 апреля 2015 21:31 · Поправил: F_a_u_s_t
· Личное сообщение · #14

Rainbow пишет: А чего сложного дернуть пару методов ком интерфеса-то ?

Запусти на более менее вменяемой игры flash bug, flash это не только flash, еще json, xml, html, в самом flash'e далеко не полтора метода.
Хз, может подойдет под задачу --> Link <--, а так юзают дебаг версию.
Из пушки по воробьям - использовать бинд WebKit'a под любым вменяемым языком, asm к таковым не относится.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 26 апреля 2015 23:36 · Поправил: Rainbow
· Личное сообщение · #15

F_a_u_s_t пишет:
flash это не только flash, еще json, xml, html

Я тебя умоляю.. Это всего лишь способы представления данных для их хранения/передачи/обработки. Используются, как я понял, они в дочерних классах, на которых базируются сами контролы (если рассматривать исключительно флеш). Ведь когда ты пишешь софт, чтобы хранить свои внутренние софтовые конфиги у тебя есть несколько путей реализации этого: ты можешь их писать в инишники(один формат), можешь писать в реестре(второй), можешь в произвольном бинаре/текстовике(третий) и т.д. Но при этом тебя никто не заставляет писать парсер под эти форматы. Есть тупо апишки, которые тебе даны в помощь, например, от мелкомягких коллег, но при этом у тебя есть выбор что юзать. Я думаю так и во флеше. Возможно, и есть некие модуля-парсеры в виде отдельных интерфейсов, ну есть - да ради бога, упростили задачу. Но это уже дальше придется вкуривать. Пока что надо понять как добраться до доков по основным интерфейсам.

F_a_u_s_t пишет:
Хз, может подойдет под задачу --> Link <--, а так юзают дебаг версию.


What is F-IN-BOX?

F-IN-BOX is a window control to enhance Macromedia / Adobe Flash Player ActiveX features. It does not use its own engine to display movies but provide a wrapper around official swflash.ocx/flash.ocx code instead. Thus it is possible to avoid certain Macromedia / Adobe Flash Player ActiveX limitations.

Как я понял:
F-IN-BOX - это оконный контрол, расширяющий возможности Macromedia / Adobe Flash Player ActiveX. Он не использует его движок для воспроизведения роликов. Вместо оффициального кода swflash.ocx/flash.ocx, предоставляет свой оберточный(обработочный, иными словами - парсер swf, /* мои коменты */) код. Таким способом он позволяет обходить ограничения, накладываемые Macromedia / Adobe Flash Player ActiveX.


Ну не знаю... Например, что лучше использовать, для записи в реестр: функции из Advapi32.dll или из коммерческой библиотеки фирмы MYCOMP Corp. ? ))) Ну я бы выбрал первое, т.к. я думаю очевидно, что разработчик стандарта лучше знает свой код и свои косяки, чем MYCOMP Corp.

F_a_u_s_t пишет:
под любым вменяемым языком, asm к таковым не относится


Еще как относится ))) Вот как раз VM-языки(байт-кодовые) - это опухоль на сознании кодера. Особенно, если при этом используется техника run-time compile в нативный код, такая же как в .NET )))



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 27 апреля 2015 03:45
· Личное сообщение · #16

Rainbow пишет: Ну я бы выбрал первое, т.к. я думаю очевидно, что разработчик стандарта лучше знает свой код и свои косяки

Что тут сказать - удачи, хотя оптимальней было бы взять webkit, если уж так хочется standalone.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 02 мая 2015 17:51
· Личное сообщение · #17

Rainbow, ExternalInterface, как я понял, можно использовать только, если flash тоже твой, т.к. в нём его нужно инициализировать? с чужой флешкой не прокатит?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 03 мая 2015 15:56 · Поправил: Rainbow
· Личное сообщение · #18

Isaev пишет:
Rainbow, ExternalInterface, как я понял, можно использовать только, если flash тоже твой, т.к. в нём его нужно инициализировать? с чужой флешкой не прокатит?


Как я понял, должно прокатывать с любой вроде, интерфейс имеет методы аттача к флешке впринципе любого процесса. Дебаг может осуществляться таким методом. Отсутствие доков - засада .

P.S. Могу ошибаться канеш, поправляйте.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 03 мая 2015 16:15
· Личное сообщение · #19

Rainbow пишет: аттача к флешке впринципе любого процесса

Все верно, по сути это callback функция которая используется для внутреннего расширения флешки и для обработки событий самого плеера.




Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 21 мая 2015 15:16
· Личное сообщение · #20

Ниукого нету в djvu/pdf книжки -> ATL 8: внутренняя структура и применение, 2-е издание
Авторы: Кристофер Таваре, Кирк Фертитта, Брент Ректор, Крис Селлз ?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 21 мая 2015 15:34
· Личное сообщение · #21

вбей в гугл скачай
www.cmlab.csie.ntu.edu.tw/~cathyp/eBooks/ATL/ATL.Internals.Working.with.ATL.8.2nd.Edition.Jul.2006.chm
хотя тебе же наверное на русском и с картинками ?

| Сообщение посчитали полезным: Rainbow


Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 21 мая 2015 16:08
· Личное сообщение · #22

Rainbow
Read Only
Сорцы из книги тоже найти можно. pdf/djvu - видимо в природе не существует - так как всего 2000 экземпляров книги было выпущено (инфа с ютуба).

-----
Don_t hate the cracker - hate the code.





Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 21 мая 2015 18:19
· Личное сообщение · #23

reversecode пишет:
хотя тебе же наверное на русском и с картинками ?


Собсно а поч и нет ? ) Спс


 eXeL@B —› Программирование —› Получить handle контрола в HTML/FLASH.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати