Вниз
Скачать: CL | DM;

Ох уж эти хуки.....   Найти похожие ветки 

← →
SPeller ©   (2002-05-21 17:03) [0]

Здрасьте! Наверно мои слова повторялись десять тысяч раз. Проблема такая: ставлю хук, а при обработке сообщения вылазит ошибка.

...
callwndproc:=hookproc;
hhook:=setwindowshookex(wh_getmessage,@callwndproc,hinstance,getcurrentthreadid);
...

function tform1.Hookproc(hc:integer;wParam:word;lParam:longint):longint;stdcall;
var cwp:tmsg;
begin
if lparam<>0 then begin
cwp:=tmsg(pointer(lparam)^);
if (cwp.message=wm_paint)then begin // Тут вылазит ошибка
.....
end;
end;
result:=0;
end;


В указанном месте вылазит ошибка "Access violation at address XXXX....."
Чего ей не хватает???


← →
AFROLOV ©   (2002-05-21 17:23) [1]

Может и не лучшая реализация но работает:
Function WndHook(Code: Integer; ParamW: WPARAM; ParamL: LPARAM): LRESULT;stdcall;
var
PMsgSt:^tagMSG;
MsgStruct:tagMSG;
....
begin
.....
PMsgSt:=Pointer(ParamL);
MsgStruct.hwnd:=PMsgSt^.hwnd;
MsgStruct.message:=PMsgSt^.message;
MsgStruct.wParam:=PMsgSt^.wParam;
MsgStruct.lParam:=PMsgSt^.lParam;
MsgStruct.time:=PMsgSt^.time;
MsgStruct.pt.X:=PMsgSt^.pt.x;
MsgStruct.pt.y:=PMsgSt^.pt.y;
....
end;
....
WndHookHandle:=SetWindowsHookEx(WH_GETMESSAGE, @WndHook, HInstance, TreadId);
....


← →
MBo ©   (2002-05-21 17:47) [2]

ошибка в том, то Hookproc не должна быть методом объекта



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
14-95555
Serg_2002
2002-07-03 10:00
2002.07.29
Мастера, мне не до смеха!!! Вопрос по ИнтернетЕксплореру


1-95437
Labutin
2002-07-16 21:31
2002.07.29
QuickReport


1-95424
Руль
2002-07-15 19:11
2002.07.29
Автоматический запуск Excel


3-95189
Кузнецов
2002-07-05 14:35
2002.07.29
Запросы буть они не ладны


14-95527
esprit_bel
2002-07-02 05:44
2002.07.29
Осмысл




   Наверх