设置系统级的钩子: 
   hHook:=  SetWindowsHookEx(idHook, NewWndProc, hInstance, threadId)
   UnhookWindowsHookEx(hHook)

  //里面要调用CallNextHookEx
   function NewWndProc(nCode: Integer; wParam, lParam: Integer): LRESULT; stdcall; 

设置某个窗口的钩子:
  OldProc  := Setwindowlong(hwnd, GWL_WNDPROC, NewProc);
  Setwindowlong(hwnd, GWL_WNDPROC,  OldProc ); 
  NewProc为windows中的标准窗口过程的指针

Delphi中的窗口过程 与Windows的窗口过程
     Delphi中的窗口过程
        TWndMethod = procedure(var Message: TMessage) of object;

    转成windows的窗口过程
        NewWndProc := classes.makeObjectInstance(wndProc);
        classes.FreeobjectInstance(NewWndProc );

 

    创建实现某个窗口过程的窗口
        function AllocateHWnd(Method: TWndMethod): HWND;
        procedure DeallocateHWnd(Wnd: HWND);
  
posted on 2011-11-09 18:09  Cabic  阅读(630)  评论(0)    收藏  举报