Главная страница
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.017 c
15-1446327002
Юрий
2015-11-01 00:30
2016.07.24
С днем рождения ! 1 ноября 2015 воскресенье


3-1307795544
Geo
2011-06-11 16:32
2016.07.24
Каскадное обновление связных таблиц Oracle+Delphi


15-1446991183
K-1000
2015-11-08 16:59
2016.07.24
Какую версию Delphi вы используете и почему?


15-1445361141
Rouse_
2015-10-20 20:12
2016.07.24
Таксь, у нас опять кто-то умный появился.


15-1442343788
DayGaykin
2015-09-15 22:03
2016.07.24
Копирование потока без хвоста.