Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.13;
Скачать: CL | DM;

Вниз

Перехват сообщения из окна чужого приложения   Найти похожие ветки 

 
Hawk ©   (2004-05-01 17:06) [0]

В окне чужого приложения появляется текст. Вот мне его и надо получить.
Какой win-api процедурой этот текст можно перехватить?
Если GetMessage, то как по номеру сообщения получить этот текст?


 
DVM ©   (2004-05-01 17:10) [1]

Перехватить или получить?
Перехват сообщений можно осуществить хуком WH_GETMESSAGE.
Получить можно текст, только если он не является картинкой, послав окну WM_GETTEXT. Хотя текст полученный таким образом, может и не совпадать с тем, что написано в окне.


 
Hawk ©   (2004-05-01 17:17) [2]

Получить текст. Даже если он не будет совпадать в точности, надеюсь что примерно слова будут сохранены? :)
А как послать WM_GETTEXT, и чем его потом получить, или в какую функцию рыть?


 
DVM ©   (2004-05-01 17:26) [3]


> А как послать WM_GETTEXT, и чем его потом получить, или
> в какую функцию рыть?

SendMessage() + F1


 
Hawk ©   (2004-05-01 17:40) [4]


var p:tpoint;
   text: array[0..128] of Char;
   s: String;
   i:integer;
   wnd1: HWND;
begin
GetCursorPos(p);
wnd1:=WindowFromPoint(p);
i:= SendMessage(wnd1, WM_GETTEXT, 128, Longint(@Text));
SetString(S, text, i);
Caption:= S;
end;


Уже лучше.. Приложение то- игра, получаю сообщение не то что внизу слева проскакивает, а заголовок тоесть то что написано в заголовке окна...
Вроде wnd по всему окну игры одинаковый везде...


 
Hawk ©   (2004-05-01 17:54) [5]

Может я не успеваю послать WM_GETTEXT в то время когда там образовывается? Как саму ловушку навесить чтобы от меня никакой текст не ушел?  Выше описанную процедуру я по кнопке обрабатываю :)


 
Hawk ©   (2004-05-01 17:59) [6]

Кстати возможно, что в игре как раз текст из картинки составляется... Тогда тектс не получить WM_GETTEXT. Но вообще его можно как нидь выловить?


 
DVM ©   (2004-05-01 22:39) [7]

Если это игра, то скорее всего весь текст - картинка. Более того, наверняка используется DirectX или OpenGL. Получить текст невозможно. Тест можно получить только из стандартных оконных элементов управления, да и то не из всех, а также из заголовков окон.


 
Германн ©   (2004-05-02 02:47) [8]

Как говорят в Одессе: "Либо ничего, либо одно из двух".
(А говорят ли так в Одессе? Или я уже ! Или это из анекдотов?)
Но, как правило, в современных игрушках, нет никаких оконных контроллов!


 
Марсианин ©   (2004-05-02 03:08) [9]

Игорь Осовьяк тоже давненько задавал подобный вопрос. там была не игра, но WM_GETTEXT тоже не покатило. не помню нашли ли там ответ, кажется нет..

видимо придется выдирать текст из ресурса..


 
Hawk ©   (2004-05-02 20:56) [10]

спасибо за исчерпывающий ответ :)


 
Hawk ©   (2004-05-08 23:59) [11]

В догонку...
А можно прочтитать требуемый текст непосредственно из памяти самого процесса? Выдрать его по ключевым словам например? Или как работает программа ARTMONEY, например?



Страницы: 1 вся ветка

Текущий архив: 2004.06.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
14-1085720232
ORMADA
2004-05-28 08:57
2004.06.13
Хде Дельфим держит свои иконки ?


14-1085636152
Соловьев
2004-05-27 09:35
2004.06.13
Сколько 1-ых битов в байте? :)


1-1086171807
Ruslan
2004-06-02 14:23
2004.06.13
Как преобразовать массив байт в строку?


11-1075137019
NavigatorV
2004-01-26 20:10
2004.06.13
Компонент TKOLMHDateTimePicker


3-1084972238
ka
2004-05-19 17:10
2004.06.13
Транзакции