Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1196692823
iZEN
2007-12-03 17:40
2008.01.13
IDE NetBeans 6.0 Final вышла


3-1188911245
pasha_golub
2007-09-04 17:07
2008.01.13
Master-Detail связка: чтобы мастер-запись из комбобокса


15-1197030268
Мурзик
2007-12-07 15:24
2008.01.13
Компонент, аналог SizeControl


4-1181578038
Тохер
2007-06-11 20:07
2008.01.13
Как получить картинку с USB фотокамеры.


15-1197014448
smolin
2007-12-07 11:00
2008.01.13
Как сменить иконку и exe при компиляции ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский