| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB .NET > Кликнуть по HTMLElement в определённо месте? |
| Автор: xXxSataNxXx 31.8.2010, 11:57 |
| На вебсайтах есть распознование ботов, там вылазят картинки с некоторым количеством разных фигур и нужно кликнуть внутри круга, найти место куда кликнуть я знаю, а как програмно кликнуть по заданным координатам на картинке? |
| Автор: diadiavova 31.8.2010, 12:03 |
| Смотря как все реализовано. Обычно для этого используют теги map и area. Если в твоем случае сделано именно так, то и кликай по area. |
| Автор: xXxSataNxXx 31.8.2010, 12:29 |
| Хм... Там у картинки нет никаких тегов, просто php файл... а я брал картинку с хеша веббраузера обрабатывал ей и находит место куда следует кликать... |
| Автор: diadiavova 31.8.2010, 13:20 |
А как они по-твоему там должны быть? Вот взгляни на пример использования, может найдешь на своей странице что-то подобное. http://www.htmlbook.ru/html/map.html Если нет, выясни как это реализовано на странице, но я думаю, что именно так. |
| Автор: xXxSataNxXx 31.8.2010, 15:35 | ||
Нет, тут совсем по другому...
|
| Автор: diadiavova 31.8.2010, 15:39 |
| Из того, что ты написал, невозможно определить как именно. |
| Автор: xXxSataNxXx 31.8.2010, 16:23 | ||
| Если бы всё было просто и можно было бы узнать какой способ тут используется, я бы и не спросил, эту картинку можно просто получить набрав адрес php страницы, но у неё в тексте ничего кроме этого нет...:( Я просмотрел все Style и Script на странице, но кроме этой формы больше ничего к картинке не относится...
Я нашёл бота для флеш игры, он сделан таким образом: Определяешь ему точку на которой надо проверить цвет, если цвет совпадает с нужным то он кликает в определённом месте, которое ты задаёшь по координатам, но соурсе программы я получить не могу, да и сделана она на С++... В VB.Net я думаю что то типо такого тоже реально реализовать, только незнаю как... |
| Автор: neic 1.9.2010, 01:28 |
| Окно браузера открыто? Т.е. элемент виден? |
| Автор: xXxSataNxXx 1.9.2010, 08:40 |
| neic ты про что? Если ты про бота, то ему всё равно, видно окно браузера или не видно... |
| Автор: xXxSataNxXx 1.9.2010, 09:25 |
| Ну, решил я потому, что просмотрев все скрипты и стили на этой странице, там нет ничего подобного, нет никаких связей с данным элементом, нет никаких предпосылок... Флеш то тут не причём, просто та програмка может работать не только с флешью, она проверяет любое изменение, и выполняет клики в любом месте, не обязательно на флешке, можно просто кнопки нажимать и так далее... |
| Автор: diadiavova 1.9.2010, 09:40 | ||||
Подобного чему? Если ты о карте, то я уже давно не о ней.
Если бы их не было, то это не работало бы. Чудес на свете не бывает, а уж в информатике - подавно. Существует масса способов реализовать то, о чем ты пишешь. Вот простой пример(действует только в IE)
Как видишь в скрипте нет ни одного упоминания картинки, но если ты кликнешь в районе винограда, то увидишь реакцию. Поэтому я еще раз спрашиваю: ты уверен, что изучил все возможности? |
| Автор: Pilger 2.9.2010, 14:48 | ||||
Я не думаю, что координаты определяются на клиенте.
Он хотел сказать, что если тебе надо реально кликнуть мышкой в браузере, как это делал бы пользователь, то это легко, но элемент должен быть виден на экране. При этом происходит реальное нажатие мыши (в компе разумеется^^) и вряд ли ты сможешь чем то заниматься параллельно. Так же через АПИ есть возможность послать нажатие мыши в любое окно, даже в то, которого не видно. При этом надо задать координаты внутри окна, куда надо кликнуть. Правда не все окна у меня воспринимали такое нажатие, но браузер, наверное, будет. Это как вариант. |
| Автор: diadiavova 2.9.2010, 15:50 |
А как ты на сервере определишь куда кликнули, если не пошлешь на сервер координаты? |
| Автор: Pilger 2.9.2010, 19:27 |
| Поправка. Не координаты определяются, а определяется правильно ли попал. Я думаю, что координаты передаются серверу, а там уже в целях безопасности решается всё остальное. Иначе чё это за антибот. Но понятия не имею, где они пересылаются. |
| Автор: diadiavova 2.9.2010, 19:30 |
Для того, чтобы иметь об этом понятие, надо как минимум увидеть страницу |
| Автор: xXxSataNxXx 6.9.2010, 01:05 |
| Ну, допустим что такое можно реализовать подкачкой аяксом, тогда ты в годе этого не увидишь... А нет такого, чтоб кликнуть мышко в опрделённом месте. Как на любом конроле с формы кликнуть в определённой точке я знаю, а вот как на вебстраничке незнаю... Да и мне не нужно посылать запрос на сервер с определёнными координатами, даже если выловить этот код, мне просто надо кликнуть в опредённом мест мышкой... |
| Автор: diadiavova 6.9.2010, 08:17 | ||||
А при чем тут аякс? Это еще почему? Если используется DOM, то нет.
Если на форме ты делаешь это через винапи, то не думаю, что на вебстраничке это делается иначе, а если через стандартные средства, то поделись секретом, я не в курсе. Хотя, конечно, можно вызвать метод OnMouseClick с нужными параметрами.
А это не имеет значения. В любом случае тебе надо не эмулировать клик, а вызывать метод, который его обрабатывает. От самого клика нет никакой пользы. Зачем? Если это секрет, то я помочь не смогу. |
| Автор: Pilger 6.9.2010, 16:32 | ||||
Как это нет такого? Я что то не понял? Есть функции API хотя бы, которые имитируют нажатие мыши. Там даже такие вещи, как нажатие и отжатие кнопок можно имитировать, как для клавиатуры, так и для мыши. Например Mouse_Event из user32. Но проблемы говорил выше уже. А можно попробовать еще и
если это заработает, то вообще идеально будет. Правда не везде у меня работало, как уже говорил. Неужели ничего не работает? Или я не понял? Кстати даже SendKeys посылает нажатие мыши. |
| Автор: diadiavova 6.9.2010, 17:48 |
А поподробнее можно? |
| Автор: Pilger 6.9.2010, 18:41 |
| Опс. Действительно перепутал. Простите. |