Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить хинт из другого приложения [D6, XP]


Страницы:   1 2

Free_Breeze ©   (2007-12-13 12:00:00) 

Имеется чужое приложение (ехе-файл) с картинками, кнопками и пр. При наведении на картинки высвечивается хинт, как его можно получить в своем приложении (сам текст, который в хинте)?
P.S. Пробовал через handle - не получилось.


Amoeba   (2007-12-14 18:46:00) [1]


> а вот например Handle object RegionLabel: TLabel, который
> на этой панели находится получить не получилось. может и
> тут поможете? Интересует естественно Caption у RegionLabel.
> ..

Это невозможно.


Free_Breeze   (2007-12-14 15:08:00) [2]

Лана, буду капать по сути вопроса дальше. Если найду решение - отпишу.
Если кто-то сможет всеже помочь по данному вопросу - отпишитесь =)


morgoth   (2007-12-14 14:25:00) [3]

из хелпа
TLabel is a nonwindowed control that displays text  on a form.


morgoth   (2007-12-14 14:16:00) [4]

Что то я не уверен что ты получишь вообще хэндл лейбла, он нарисован, по-моему.


Free_Breeze   (2007-12-14 14:13:00) [5]

Накопал типа того:

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...


Free_Breeze   (2007-12-14 14:07:00) [6]


> хинт не обязательно можно будет считать, потому что текст
> может быть просто отрисован...


та нет. клиента я уже немного расковырял, Явно написан на Дельфе. Хинты стандартные.

Может подскажите функцию возвращающую содержание хинта у компонента, handle которого уже известен???


morgoth   (2007-12-14 10:05:00) [7]

>>считать хинт, что я и пытаюсь добиться, но пока безуспешно (((
хинт не обязательно можно будет считать, потому что текст может быть просто отрисован...


Free_Breeze   (2007-12-14 02:47:00) [8]

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


Free_Breeze   (2007-12-13 20:05:00) [9]


> лучше всего [9]


Пытался как-то написать проксю для перехвата обмена клиент-игровой сервер, но это во-первых притормаживает клиент, во вторых - настройка самого прокси в данном случае не предусмотрена. Если есть другая возможность отследить обмен клиент-игровой сервер - поделитесь, было бы очень интересно и гораздо упростило бы жизнь )))


Free_Breeze   (2007-12-13 20:01:00) [10]


> А ты надеешься из хинта получить текстовую инфу о мобе и
> подставить свою?

Чтото типа того, только не менять хинт, а в своей форме полную инфу отображать. Окно у клиента фиксированное (не полноэкранное), так что для своей формы место найдется. Полная информация будет заложена в мою форму, и следовательно для работы утилитки достаточно только узнавать над каким мобом находится мыша, а пока мыша над мобом - постоянно высвечен хинт с его названием. Вот и напрашивается простейший метод его вычисления - считать хинт, что я и пытаюсь добиться, но пока безуспешно (((


morgoth   (2007-12-13 17:12:00) [11]

А ты надеешься из хинта получить текстовую инфу о мобе и подставить свою?


Free_Breeze   (2007-12-13 17:02:00) [12]


> что же это за мобы такие, убегают гады )))

Да уж, на месте не стоят )))


> а потом сама его завалила и шмот подобрала наверное?

Ну это уже бот получится, я же обычно пишу "легальные" утилитки, которые иногда проходят проверку у администрации игр. Опыт в написании уже есть, а вот с этим клиентом загвоздка получилась.


> лучше всего [9]

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


morgoth   (2007-12-13 16:19:00) [13]

что же это за мобы такие, убегают гады )))

>>А по замыслу как раз и получается, что только мышкой на моба навел, а утилитка уже всю информацию о нем показала

а потом сама его завалила и шмот подобрала наверное?
лучше всего [9]


Free_Breeze   (2007-12-13 15:54:00) [14]


> так если ее нету в том хинте

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


clickmaker   (2007-12-13 15:48:00) [15]


> полную информацию о нем

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


Free_Breeze   (2007-12-13 15:45:00) [16]


> Если дельфовый клиент УЖЕ отображает эту инфу, зачем еще?

Не совсем так. в хинте отображается только название моба и его уровень. Я же в своей проге (скажем так: в утилитке для клиента) хочу выводить полную информацию о нем. Например в клиенте игры при наведении на моба мышки появляется хинт "Пёс [4]". И в задумке, чтобы моя прога при этом показывала инфу такого порядка:
- Название моба: Пёс
- Уровень моба:   4
- НР моба:           200 (дабы примерно знать сколько нужно из него выбить для победы)
- Возможное вооружение: нет
- Возможная броня: Ошейник
Ну и так далее...


clickmaker   (2007-12-13 15:29:00) [17]


> [6] Free_Breeze   (13.12.07 15:25)

погоди. Если дельфовый клиент УЖЕ отображает эту инфу, зачем еще? Или ты своего клиента пишешь?


Free_Breeze   (2007-12-13 15:25:00) [18]


> а кроме как из хинта, описание моба не узнать?

если только трафик перехватывать =(
Сейчас набросал прожку которая Handle и GetClassName показывает того, что под мышкой. Нужная панель с мобами обзывается TScrollPanel. И в том окне классов с таким именем как минимум три.


clickmaker   (2007-12-13 15:14:00) [19]


> [4] Free_Breeze   (13.12.07 15:13)

а кроме как из хинта, описание моба не узнать?


Free_Breeze   (2007-12-13 15:13:00) [20]


> зачем?

Интересный вопрос. Ну к примеру клиент онлайн игры, который написан на Дельфе. В клиенте есть панель с изображением мобов (игроки, монстрики). При наведении на изображение моба появляется стандартный Hint, в котором отображается информация о нем. Мне вот захотелось написать программку, которая при наведении мышки на моба показывала полную информацию о нем...
Что-то типа того.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо