如何清理IE缓存,IE.cookies呢?

20 | 问答知识库用户 |浏览266次
收藏|2014/05/17 22:00
如题,怎么样用Delphi实现这个功能呢?

满意回答

2014/05/26 23:20

参考如下代码:
procedure DeleteIECache(httpStr: string); // 清理IE缓存,IE.cookies
var  
  lpEntryInfo: PInternetCacheEntryInfo;   
  hCacheDir: LongWord;   
  dwEntrySize: LongWord;   
  cachefile: string;   
begin  
  dwEntrySize := 0;
  FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);   
  GetMem(lpEntryInfo, dwEntrySize);   
  if dwEntrySize > 0 then
    lpEntryInfo^.dwStructSize := dwEntrySize;
  hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
  if hCacheDir <> 0 then  
  begin  
    repeat  
      if (lpEntryInfo^.CacheEntryType) and (NORMAL_CACHE_ENTRY) = NORMAL_CACHE_ENTRY then
        cachefile := pchar(lpEntryInfo^.lpszSourceUrlName);
      if pos(httpStr, cachefile) > 0 then    //清除特定网站的cookies.例如baidu.com
        DeleteUrlCacheEntry(pchar(cachefile)); //执行删除操作   
      FreeMem(lpEntryInfo, dwEntrySize);
      dwEntrySize := 0;
      FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize);   
      GetMem(lpEntryInfo, dwEntrySize);   
      if dwEntrySize > 0 then  
        lpEntryInfo^.dwStructSize := dwEntrySize;   
    until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize);   
  end;   
  FreeMem(lpEntryInfo, dwEntrySize);   
  FindCloseUrlCache(hCacheDir);   
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DeleteIECache(Edit1.Text);
end;

热心网友

其他回答(0)
0人关注该问题
待解决问题



+1
 加载中...