我在网上找到一个DELPHI删COOKIE代码,效果不错,就是不稳定.
function GetCookiesFolder:string; 
var 
        pidl:pItemIDList;
        buffer:array [ 0..255 ] of char ; 
begin 
       SHGetSpecialFolderLocation( 
         application.Handle , CSIDL_COOKIES, pidl); 
       SHGetPathFromIDList(pidl, buffer); 
       result:=strpas(buffer); 
end;function ShellDeleteFile(sFileName: string): Boolean; 
var 
      FOS: TSHFileOpStruct; 
begin 
       FillChar(FOS, SizeOf(FOS), 0); {记录清零} 
       with FOS do 
       begin 
           wFunc := FO_DELETE;//删除 
           pFrom := PChar(sFileName); 
           fFlags := FOF_NOCONFIRMATION; 
       end; 
       Result := (SHFileOperation(FOS) = 0); 
end;procedure DelCookie; 
var 
   dir:string;
begin 
   try
       InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION , nil, 0);
       ///有时候断网后,执行到这个地方,卡住
       dir:=GetCookiesFolder;
       ShellDeleteFile(dir+'\*.txt'+#0);
   except  on e:exception do
       Abort;
   end;
end;
InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION , nil, 0);
问题就在这一句代码里面,有时候就执行到这一句就卡住了,用try  except do end; 捕捉不到错误.

解决方案 »

  1.   

    RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2
      

  2.   

    还真没见过你这么罗嗦删Cookies的代码,呵呵,给你写一个试试看
    uses WinInet;procedure TForm1.Button1Click(Sender: TObject);
    var
      H:Integer;
      T:PInternetCacheEntryInfo;
      D:DWORD;
    begin
      D:=0;
      FindFirstUrlCacheEntry(nil,TInternetCacheEntryInfo(nil^),D);
      GetMem(T,D);
      if D>0 then T.dwStructSize:=D;
      H:=FindFirstUrlCacheEntry(nil,T^,D);
      if H<>0 then
        repeat
          if T^.CacheEntryType=1048577 then
            DeleteUrlCacheEntry(T^.lpszSourceUrlName);
          FreeMem(T,D);
          D:=0;
          FindnextUrlCacheEntry(H, TInternetCacheEntryInfo(nil^), D);
          GetMem(T,D);
          if D>0 then T.dwStructSize:=D;
        until not FindNextUrlCacheEntry(H, T^, D);
      FreeMem(T,D);
      FindCloseUrlCache(H);
    end;
      

  3.   

    to Forever_Young非常感谢你的代码,这段代码删除关闭IE的COOKIE是很好,不过,当IE是在打开状态的情况下,这段代码删除不了COOKIE!
      

  4.   

    在IE打开状态下删不了,你指的是cookies文件还是别的什么?
      

  5.   


    你观察了你的COOKIES文件夹了么,下面还有文件存在?
      

  6.   

    COOKIE文件夹虽然不在了,但IE进程里面仍保存有COOKIE,继续访问时,抓包发现,仍带有COOKIE。不过,还是很感谢你