Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехватить wm_timer


ParamPam ©   (2010-06-19 16:17:00) 

Приветствую всех!!!
Пытаюсь написать хук обрабатывающий WM_TIMER
Прилагаю код функции из DLL

function SysMsgProc(code : integer; wParam : word; lParam : longint; Message: longint) : longint; stdcall;
begin
   if (code < 0) then
   begin
      SysMsgProc := CallNextHookEx(SysHook, code, wParam, lparam);
      Exit;
   end;
   if (TMSG(pointer(lParam)^).message = WM_TIMER) then
   begin
     messagebox(0, pchar('WM_TIMER - ' + inttostr(message)), pChar('WM_TIMER'), mb_YesNoCancel);
   end;

SysMsgProc := CallNextHookEx(SysHook, code, wParam, lparam);

end;


Вызываю эту функцию

SetWindowsHookEx(WH_GETMESSAGE, @SysMsgProc, HInstance, 0)


В результате не выдается ни одного сообщения.
Может кто знает в чем тут проблема?


ParamPam   (2010-06-22 19:57:00) [1]

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


Сергей М.   (2010-06-21 10:28:00) [2]

Вру)
Имелось ввиду что WH_GETMESSAGE не "поймает" WM_TIMER в колбеке


Сергей М.   (2010-06-21 10:25:00) [3]


> таймер есть. Запускал несколько приложений с таймером


Вот пример запуска таймера, не использующего механизм сообщений:

MyTimer := SetTimer( 0,0,1000, @ MyCallback);

Таймер чудесно работает безо всяких WM_TIMER.

Ы ?


ParamPam   (2010-06-19 20:13:00) [4]


> и еще messagebox на лог в файл хотя-бы замени...


Там так и будет, но на период отладки я использую messagebox.


ParamPam   (2010-06-19 20:11:00) [5]

Результат выполнения SetWindowsHookEx = 552476


Rouse_   (2010-06-19 20:08:00) [6]

и еще messagebox на лог в файл хотя-бы замени...


Rouse_   (2010-06-19 20:06:00) [7]

Результат выполнения SetWindowsHookEx какой?


ParamPam   (2010-06-19 20:04:00) [8]

Windows XP SP3.


Rouse_   (2010-06-19 20:03:00) [9]

Ось какая?


ParamPam   (2010-06-19 19:54:00) [10]

Поменял на longint, это не помогло.


Rouse_   (2010-06-19 19:42:00) [11]

wParam не Word имеет тип


ParamPam   (2010-06-19 19:26:00) [12]

В том то и дело, что таймер есть. Запускал несколько приложений с таймером.


KilkennyCat   (2010-06-19 18:47:00) [13]

нет ни одного таймера - нет сообщений.


Наверх

Титульная страница Поиск, карта сайта Написать письмо