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

Вниз

Перехватить wm_timer   Найти похожие ветки 

 
ParamPam   (2010-06-19 16:17) [0]

Приветствую всех!!!
Пытаюсь написать хук обрабатывающий 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)


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


 
KilkennyCat ©   (2010-06-19 18:47) [1]

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


 
ParamPam   (2010-06-19 19:26) [2]

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


 
Rouse_ ©   (2010-06-19 19:42) [3]

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


 
ParamPam   (2010-06-19 19:54) [4]

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


 
Rouse_ ©   (2010-06-19 20:03) [5]

Ось какая?


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

Windows XP SP3.


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

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


 
Rouse_ ©   (2010-06-19 20:08) [8]

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


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

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


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


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


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


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


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


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

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

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

Ы ?


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

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


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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
15-1442698201
Юрий
2015-09-20 00:30
2016.07.24
С днем рождения ! 20 сентября 2015 воскресенье


15-1445002031
Rouse_
2015-10-16 16:27
2016.07.24
Протестируйте плз код на 32 ОС


15-1442784604
Юрий
2015-09-21 00:30
2016.07.24
С днем рождения ! 21 сентября 2015 понедельник


15-1440522423
кгшзх
2015-08-25 20:07
2016.07.24
календарно космологическое


15-1442859281
Kerk
2015-09-21 21:14
2016.07.24
АП