Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
6-1082716503
lika
2004-04-23 14:35
2004.06.13
Исходники почтового клиента


4-1083829193
Tomkat
2004-05-06 11:39
2004.06.13
Delphi и приложения для торговли


14-1085812324
kaif
2004-05-29 10:32
2004.06.13
Именование событий


14-1085787364
Thor
2004-05-29 03:36
2004.06.13
помогите с бейсиком!


1-1085381152
Дмитрий 2004
2004-05-24 10:45
2004.06.13
Вертикальный QRlabel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский