Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.03.2010, 07:57   #1
-Flasher-
Пользователь
 
Регистрация: 05.01.2010
Сообщений: 26
По умолчанию Перехват сообщений

Здраствуйте, мне нужно перехватить сообщение чужого окна WM_CLOSE. Вот код:

Код:
var
 h:hWnd;
 Msg:TMsg;
begin
h:=FindWindow('WindowClass',nil); //Окно находит
while GetMessage(Msg,h,0,0) do
 begin
  if Msg.message=WM_CLOSE then
   MessageBox(h,'Text','Caption',MB_OK);
 end;
end;
Окно закрывается программа никак не реагирует...
Подскажите, где я допустил ошибку и как правильно сделать фильтрацию сообщений.
-Flasher- вне форума
Старый 15.03.2010, 08:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
где я допустил ошибку
Ты описал цикл получения сообщений для твоего приложения а для чужего нужно ставить хук.
Это много раз обсуждалось, так что ищи поиском по форуму на слово SetWindowsHookEx

Если не хочешь хуком.
То найдя окно, переопредели его оконную процедуру на свою функцией, я правда не помню возможно ли это так просто, но некоторые пепсы хвастались что смогли сделать это для чужего приложения.
Но лучше хук...
I'm learning to live...
Stilet вне форума
Старый 15.03.2010, 08:48   #3
-Flasher-
Пользователь
 
Регистрация: 05.01.2010
Сообщений: 26
По умолчанию

А хук без Dll можно поставить, а то не охото довесок к программе делать.
-Flasher- вне форума
Старый 15.03.2010, 08:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я знаю без ДЛЛ только на клавиатуру можно.
I'm learning to live...
Stilet вне форума
Старый 15.03.2010, 12:40   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Без ДЛЛ и клаву вроде нельзя. Ведь к каждому процессу в системе надо прикреплять свою ДДЛку
TwiX вне форума
Старый 15.03.2010, 12:44   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Без ДЛЛ и клаву вроде нельзя.
Можно. По крайней мере WH_JOURNALPLAYBACK Hook можно.
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват сообщений icQ Xandr Работа с сетью в Delphi 6 10.08.2010 15:09
Перехват сообщений об ошибках Garacio_cain Общие вопросы Delphi 0 18.09.2009 15:08
Перехват сообщений в сервисе mosian Win Api 0 22.07.2009 12:18
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 10:26
Перехват сообщений rubi Win Api 3 06.09.2007 00:25