Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
ВнизПолучить хинт из другого приложения Найти похожие ветки
← →
Free_Breeze (2007-12-13 12:00) [0]Имеется чужое приложение (ехе-файл) с картинками, кнопками и пр. При наведении на картинки высвечивается хинт, как его можно получить в своем приложении (сам текст, который в хинте)?
P.S. Пробовал через handle - не получилось.
← →
palva © (2007-12-13 12:29) [1]Если хинт реализован в виде текстового окна и известен handle этого окна, то должно получиться.
← →
clickmaker © (2007-12-13 12:57) [2]
> как его можно получить в своем приложении
зачем?
← →
Free_Breeze (2007-12-13 15:08) [3]
> Если хинт реализован в виде текстового окна и известен handle
> этого окна, то должно получиться
Судя по всему, чужое приложение написано на Дельфи. Hint не окно, а стандартный (всплывающая подсказка типа:
Button1.Hint:="Button Nr.1";
Button1.ShowHint:=true;
)
Соответственно хинт своего handle не имеет. К тому же хинты меняются динамически.
← →
Free_Breeze (2007-12-13 15:13) [4]
> зачем?
Интересный вопрос. Ну к примеру клиент онлайн игры, который написан на Дельфе. В клиенте есть панель с изображением мобов (игроки, монстрики). При наведении на изображение моба появляется стандартный Hint, в котором отображается информация о нем. Мне вот захотелось написать программку, которая при наведении мышки на моба показывала полную информацию о нем...
Что-то типа того.
← →
clickmaker © (2007-12-13 15:14) [5]
> [4] Free_Breeze (13.12.07 15:13)
а кроме как из хинта, описание моба не узнать?
← →
Free_Breeze (2007-12-13 15:25) [6]
> а кроме как из хинта, описание моба не узнать?
если только трафик перехватывать =(
Сейчас набросал прожку которая Handle и GetClassName показывает того, что под мышкой. Нужная панель с мобами обзывается TScrollPanel. И в том окне классов с таким именем как минимум три.
← →
clickmaker © (2007-12-13 15:29) [7]
> [6] Free_Breeze (13.12.07 15:25)
погоди. Если дельфовый клиент УЖЕ отображает эту инфу, зачем еще? Или ты своего клиента пишешь?
← →
Free_Breeze (2007-12-13 15:45) [8]
> Если дельфовый клиент УЖЕ отображает эту инфу, зачем еще?
Не совсем так. в хинте отображается только название моба и его уровень. Я же в своей проге (скажем так: в утилитке для клиента) хочу выводить полную информацию о нем. Например в клиенте игры при наведении на моба мышки появляется хинт "Пёс [4]". И в задумке, чтобы моя прога при этом показывала инфу такого порядка:
- Название моба: Пёс
- Уровень моба: 4
- НР моба: 200 (дабы примерно знать сколько нужно из него выбить для победы)
- Возможное вооружение: нет
- Возможная броня: Ошейник
Ну и так далее...
← →
clickmaker © (2007-12-13 15:48) [9]
> полную информацию о нем
так если ее нету в том хинте, что ж ты так упорно его мучаешь?
Надо другие пути искать. Например, через изучение формат обмена клиент-игровой сервер
← →
Free_Breeze (2007-12-13 15:54) [10]
> так если ее нету в том хинте
В том то и дело, что есть типа библиотеки на сайте игры, где все мобы описаны, но не будешь же при встрече каждого моба лесть в описание (даже если всю инфу у себя на компе сохранить), пока ищешь стоит ли с ним связываться он уже сбежит. А по замыслу как раз и получается, что только мышкой на моба навел, а утилитка уже всю информацию о нем показала (наполнение утилитки расширенной информации о мобах - это уже моя проблема, главное узнать из хинта название моба над которым в данное время курсор)
← →
morgoth (2007-12-13 16:19) [11]что же это за мобы такие, убегают гады )))
>>А по замыслу как раз и получается, что только мышкой на моба навел, а утилитка уже всю информацию о нем показала
а потом сама его завалила и шмот подобрала наверное?
лучше всего [9]
← →
Free_Breeze (2007-12-13 17:02) [12]
> что же это за мобы такие, убегают гады )))
Да уж, на месте не стоят )))
> а потом сама его завалила и шмот подобрала наверное?
Ну это уже бот получится, я же обычно пишу "легальные" утилитки, которые иногда проходят проверку у администрации игр. Опыт в написании уже есть, а вот с этим клиентом загвоздка получилась.
> лучше всего [9]
Обмен клиент-сервер мне не по зубам пока. Даж не знаю с чего там подступиться
вот и хотелось как попроще, отработать с тем, что и так уже в наличии
← →
morgoth (2007-12-13 17:12) [13]А ты надеешься из хинта получить текстовую инфу о мобе и подставить свою?
← →
Free_Breeze (2007-12-13 20:01) [14]
> А ты надеешься из хинта получить текстовую инфу о мобе и
> подставить свою?
Чтото типа того, только не менять хинт, а в своей форме полную инфу отображать. Окно у клиента фиксированное (не полноэкранное), так что для своей формы место найдется. Полная информация будет заложена в мою форму, и следовательно для работы утилитки достаточно только узнавать над каким мобом находится мыша, а пока мыша над мобом - постоянно высвечен хинт с его названием. Вот и напрашивается простейший метод его вычисления - считать хинт, что я и пытаюсь добиться, но пока безуспешно (((
← →
Free_Breeze (2007-12-13 20:05) [15]
> лучше всего [9]
Пытался как-то написать проксю для перехвата обмена клиент-игровой сервер, но это во-первых притормаживает клиент, во вторых - настройка самого прокси в данном случае не предусмотрена. Если есть другая возможность отследить обмен клиент-игровой сервер - поделитесь, было бы очень интересно и гораздо упростило бы жизнь )))
← →
Free_Breeze (2007-12-14 02:47) [16]К тому же изучение обмена клиент-игровой сервер ни к чему не приведет.
С его помощью конечно можно узнать какие мобы в данный момент на локации, но на какого из них пользователь навел мышку этим методом не выяснишь. Одновременно мобов на локе может быть до 10 штук.
← →
morgoth (2007-12-14 10:05) [17]>>считать хинт, что я и пытаюсь добиться, но пока безуспешно (((
хинт не обязательно можно будет считать, потому что текст может быть просто отрисован...
← →
Free_Breeze (2007-12-14 14:07) [18]
> хинт не обязательно можно будет считать, потому что текст
> может быть просто отрисован...
та нет. клиента я уже немного расковырял, Явно написан на Дельфе. Хинты стандартные.
Может подскажите функцию возвращающую содержание хинта у компонента, handle которого уже известен???
← →
Free_Breeze (2007-12-14 14:13) [19]Накопал типа того:
object MainForm: TMainForm
Left = 132
Top = 152
AutoSize = True
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
ClientHeight = 671
ClientWidth = 702
...
object Panel1: TPanel
Left = 0
Top = 0
...
object RegionLabel: TLabel
Left = 202
Top = 221
...
object CountryLabel: TLabel
Left = 202
Top = 233
и так далее.
Кстати, Handle TPanel я смог найти, а вот например Handle object RegionLabel: TLabel, который на этой панели находится получить не получилось. может и тут поможете? Интересует естественно Caption у RegionLabel...
← →
morgoth (2007-12-14 14:16) [20]Что то я не уверен что ты получишь вообще хэндл лейбла, он нарисован, по-моему.
← →
morgoth (2007-12-14 14:25) [21]из хелпа
TLabel is a nonwindowed control that displays text on a form.
← →
Free_Breeze (2007-12-14 15:08) [22]Лана, буду капать по сути вопроса дальше. Если найду решение - отпишу.
Если кто-то сможет всеже помочь по данному вопросу - отпишитесь =)
← →
Amoeba © (2007-12-14 18:46) [23]
> а вот например Handle object RegionLabel: TLabel, который
> на этой панели находится получить не получилось. может и
> тут поможете? Интересует естественно Caption у RegionLabel.
> ..
Это невозможно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.007 c