使用 WH_JOURNALRECORD 刚开始可以记录一些IE的地址过一会就总是键盘鼠标均无反映!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~只要结束程序就好了!!!(ctrl+alt+del)
怎么回事?? 

解决方案 »

  1.   

    我想知道,键盘鼠标均无反映!!! 怎么去ctrl+alt+del呢
    里面代码屏蔽了键盘和鼠标吧,仔细查下,不然拷代码出来大家看下
      

  2.   

    function LogProc(iCode: Integer; wparam, lparam: LongInt): lresult; stdcall;
    var
      FocusWnd,Hwnda: HWND;
      Title: array[0..255] of Char;
      LogFile: TextFile;
      ExeFileNames,ckmc: STring;
      PID:HWnd;
      Time: string;
      windowCaption:array[0..254] of Char;
    begin  if iCode < 0 then
      begin
        Result := CallNextHookEx(LogHook, iCode, wParam, lParam);
        exit;
      end;  if (iCode = HC_ACTION) then
      begin    FocusWnd:=GetActiveWindow;
        GetWindowThreadProcessID(FocusWnd,@PID);
        ExeFileNames:=GetAllProcess(PID);
           GetWindowText(FocusWnd,WindowCaption,255);
       if (upperCase(ExeFileNames))<>'IEXPLORE.EXE' then
          begin
            Result := CallNextHookEx(LogHook, iCode, wParam, lParam);
            exit;
          end;
                GetWindowText(FocusWnd, Title, 256);
                AssignFile(LogFile,Path+'log.inf');
                 Append(LogFile);
                        WriteLn(LogFile, formatdatetime('yyyy-mm-dd hh:mm:ss',now)+'   '+WindowCaption);
                        CloseFile(LogFile);
                       Result := CallNextHookEx(LogHook, iCode, wParam, lParam);
       end;
      Result := CallNextHookEx(LogHook, iCode, wParam, lParam);
    end;procedure EnableLog();
    var
      LogFile:TextFile;
      Path:String;
    begin
      Path:=ExtractFilePath(Application.ExeName);
      AssignFile(LogFile,Path+'log.inf');   
      Rewrite(LogFile);                 
      CloseFile(LogFile);           
      if LogHook = 0 then           
                                    
        LogHook := SetWindowsHookEx(WH_JOURNALRECORD, LogProc, HInstance, 0);    
    end;
    网上找的代码  修改了一下   还是不行....
      

  3.   

    function LogProc(iCode: Integer; wparam, lparam: LongInt): lresult; stdcall; 
    var 
      FocusWnd,Hwnda: HWND; 
      Title: array[0..255] of Char; 
      LogFile: TextFile; 
      ExeFileNames,ckmc: STring; 
      PID:HWnd; 
      Time: string; 
      windowCaption:array[0..254] of Char; 
    begin 
      Result := CallNextHookEx(LogHook, iCode, wParam, lParam); 
    end; 
    只留这一句  也不行.......搞不清楚  
      

  4.   

    CallNextHookEx(LogHook, iCode, wParam, lParam); 进这个函数看看代码
    重点看看LogHook这个参数的作用
      

  5.   

    谢谢.....可是为什么只有这一句也不行....Result := CallNextHookEx(LogHook, iCode, wParam, lParam); 
      

  6.   

    或者能否  不用   hook  能否做个dll 挂到IE上记录曾经访问过的网址这样是否无论任何程序 调用 iexplore都能记录到??谢谢  kenshinggg 一直关注此问题!