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

Вниз

Объясните как отловить сообщение чужой программы   Найти похожие ветки 

 
Lex_!   (2002-06-23 04:23) [0]

Есть у меня такой код:

H:=FindWindowEx(Findwindow("Shell_TrayWnd",nil),0,"Button",nil);

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

GetWindowLong(H,GWL_WNDPROC);

но она возвращает 0 всегда.... мож я чего не так делаю..... помогите пожалуйста, и если мона примерчик киньте.....

Заранее всем спасибо!.....:о)


 
rhf   (2002-06-23 07:04) [1]

а ты хоть смотрел, что getWindowLong делает?

если нет, то вдумайся вот в это:
The GetWindowLong function retrieves information about the specified window. The function also retrieves the 32-bit (long) value at the specified offset into the extra window memory of a window.

а вот так это звучит если учесть твои параметры:
Retrieves the address of the window procedure, or a handltckbe representing the address of the window procedure. You must use the CallWindowProc function to call the window procedure.

ну вот.... а теперь задумайся, что же за 0 ты получаешь.......


 
Lex_!   (2002-06-23 07:32) [2]

Насколько я понял,возвращает адрес процедуры обработки сообщений программы.... но это явно не должен быть 0.....
Или если я не так понял - объясни... только пожалуйста без такого что а ты хоть знаеш....... а в твоем случае......
По русски пожалуйста......


 
Юрий Зотов   (2002-06-23 08:21) [3]

Адрес-то она возвращает, только вот КАКОЙ это адрес? Он же в ЧУЖОМ адресном пространстве, доступа к нему Вы все равно не получите. А в данном конкретном случае не получите даже и адреса - GetWindowLong не дура, она соображает, что оконная функция чужая, вот и выдает ноль.

Используйте глобальный хук.


 
Lex_!   (2002-06-23 09:14) [4]

Ну так вот как мне отловить сообщения то ктонибудь скажет или нет???....:о((((


 
rhf   (2002-06-23 10:50) [5]

тебе же сказали - hook, но может и есть другие варианты.....

а про хуки читай тут
http://delphi.mastak.ru/articles/hooks/index.html

очень полезно, для общего развития :)


 
Lex_!   (2002-06-23 10:54) [6]

Во, спасибо....
Почитаю на досуге...:о)


 
Lex_!   (2002-06-25 04:44) [7]

Чегото ничего не выхожит с описанием таким.... мож кто примерчик даст, именно с сообщениями, а то там тока клава помоему есть...:о(


 
Lex_!   (2002-06-29 10:00) [8]

Всмысле сообщения клавы и мыши ловят те примеры....
А мне нужно сообщение перерисовки ловить...


 
Юрий Зотов   (2002-06-29 20:18) [9]

> А мне нужно сообщение перерисовки ловить...

Ставите хук WH_GETMESSAGE, а в хуке проверяете, что это WM_PAINT и что оно адресовано именно тому окну, которое Вас интересует.

А вообще, похоже, что Вы хотите просто изменить кнопку "Пуск". Тогда все проще, никаких хуков не требуется. Находите хэндл этой кнопки и посылаете ей WM_SETTEXT и/или BM_SETIMAGE.


 
Diamond Cat   (2002-06-30 00:39) [10]

2 Юрий Зотов: Ну очень прошу напиши мне свой адрес, и я буду хранить его в бумажном виде , а то комп все время падает (харды мрут) и эта ценная инфа исчезает
Прошу у всех извенить меня , что не потеме


 
Diamond Cat   (2002-06-30 00:39) [11]

2 Юрий Зотов: Ну очень прошу напиши мне свой адрес, и я буду хранить его в бумажном виде , а то комп все время падает (харды мрут) и эта ценная инфа исчезает
Прошу всех извинить меня , что не потеме


 
Lex_!   (2002-07-01 04:25) [12]

Да нет, кнопку "Пуск" мне не надо менять, это просто пример был такой, мне это совсем для другой проги надо.... Спасибо что сказали как, щас проверю...:)


 
Acidy   (2002-07-18 10:44) [13]

В экзаменах оценку поменять !!!... хи-хи ...!



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

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

Наверх





Память: 0.47 MB
Время: 0.007 c
1-26944
andrey_pst
2002-08-29 06:59
2002.09.09
Help-файл


3-26884
BJValentine
2002-08-19 16:05
2002.09.09
Параметр в запросе


1-26947
KIR
2002-08-23 13:28
2002.09.09
Как правильно использовать функцию DrawTextEx?


1-27011
Yaro
2002-08-30 03:37
2002.09.09
Выравнивание в ячейке StringGrid a


1-26967
partizan
2002-08-29 13:33
2002.09.09
ReadKey, KeyPressed





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