导航

心动吧DELPHI网络书

自发研究:须要多维思想而且要想不可能为可能的人才能做到

« 禁止Delphi弹出调试器在delphi程序中屏蔽所有错误 »

DelPhi处理IE记录

明生注:今天写了一个刷广告的东西。后来发现删除IE记录有点问题。所以网上找了一下资料。网上都的都需要集合wininet这一个单元。。后来我自己改了一下直接调用函数而不使用单元也没发现体积有多大的变化。所以就没搞了,不过修改了一下他的错误

uses WinInet;

procedure DeleteIECache; // 清理IE缓存,IE.cookies
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord;
  dwEntrySize: LongWord;
  cachefile: string;
  i: integer;  '这句没有什么必要性的,循环时用的
  cancheqqlist: TStringList; '这句没有什么必要性的,因为根本就用不上
begin
  cancheqqlist := TStringList.Create;  '这句没有什么必要性的
  cancheqqlist.Clear;  '这句没有什么必要性的
  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('kumusic.net.cn', cachefile) > 0 then    //清除特定网站的cookies.例如.www.kumusic.net.cn
        cancheqqlist.Add(cachefile);  //根本就不明白他这样赋值是为了什么
      for i := 0 to cancheqqlist.Count - 1 do  //多余的循环。仔细看一下。他每一次只得到一个信息他还要循环来删除这一个信息多此一举
        DeleteUrlCacheEntry(pchar(cancheqqlist.Strings[i])); //执行删除操作
      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);
  cancheqqlist.Free;
end;


我自己改了一下完整的

 

uses WinInet;

procedure DeleteIECache; // 清理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('kumusic.net.cn', cachefile) > 0 then    //清除特定网站的cookies.例如.www.kumusic.net.cn
        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;

 

原创文章如转载,请注明:转载自心动吧DELPHI网络书 [ http://www.abcxd.com/delphi/ ]

本文链接地址:http://www.abcxd.com/delphi/abcxddelphi/DELPHIWEBSJ/delphi-DeleteIECache.html

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

搜索内容

日历

Copyright ⊙ 2004-2009 心动吧 UrL:ABCXD.CoM All RiGhts Reserved