1:WH_KEYBOARD可以截取到键盘的按下和放起,但是WH_KEYBOARD_LL确不行,老是显示E,这是为什么?DLL里面内容如下unit HookKey_Unit;interface
 uses windows,messages;
const
  WM_HOOKKEY = WM_USER + $1000;
  WH_KEYBOARD_LL = 13;//windows.pas里面没有这个,后来搜了一下看别人这样定义我就加上去,还是不行.
  procedure HookOn; stdcall;
  procedure HookOff;  stdcall;implementation
var
  HookDeTeclado     : HHook;
  FileMapHandle     : THandle;
  PViewInteger      : ^Integer;function CallBackDelHook( Code    : Integer;
                          wParam  : WPARAM;
                          lParam  : LPARAM
                          )       : LRESULT; stdcall;begin
   if code=HC_ACTION then
   begin
    FileMapHandle:=OpenFileMapping(FILE_MAP_READ,False,'TestHook');
    if FileMapHandle<>0 then
    begin
      PViewInteger:=MapViewOfFile(FileMapHandle,FILE_MAP_READ,0,0,0);
      PostMessage(PViewInteger^,WM_HOOKKEY,wParam,lParam);
      UnmapViewOfFile(PViewInteger);
      CloseHandle(FileMapHandle);
    end;
  end;
  Result := CallNextHookEx(HookDeTeclado, Code, wParam, lParam)
end;procedure HookOn; stdcall;
begin
  HookDeTeclado:=SetWindowsHookEx(WH_KEYBOARD_LL, CallBackDelHook, HInstance , 0);
end;
2:如何通过枚举所有消息钩子给另一个程序里面通过DLL挂起的系统钩子?
就是我把一个程序打开了2遍,本来都市挂钩的,结果第2个钩子挂起后第一个钩子就无效了,想枚举一下当前哪些消息钩子不使用就强行脱钩