![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехватить 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]нет ни одного таймера - нет сообщений.