http://blog.csdn.net/atian2009/article/details/7344016

Delphi 清除IE缓存 internet临时文件 cookie 历史记录 表单记录 上网密码[转]

分类: Delphi

转自 http://www.delphitop.com/html/xitong/1576.html 

TForm1.Button1Click(Sender: TObject);

begin

ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 8\',nil,1); //IE缓存

//ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 2\',nil,1); //IE cookies

ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 1\',nil,1); //IE history

ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 16\',nil,1); //form

ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 32\',nil,1); //auto save pass

//ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 255\',nil,1); //all

//ShellExecute(0,\'open\',\'rundll32.exe\',\'inetcpl.cpl,ClearMyTracksByProcess 4351\',nil,1); //all & addons

****************************************************

 http://zhidao.baidu.com/question/117185045.html

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;

 

********************************************************************************

以下信息转自http://baike.baidu.com/view/1542556.htm

FindFirstUrlCacheEntry

VC函数声明:

  HANDLE FindFirstUrlCacheEntry(

  LPCTSTR lpszUrlSearchPattern,

  LPINTERNET_CACHE_ENTRY_INFO lpFirstCacheEntryInfo,

  LPDWORD lpdwFirstCacheEntryInfoBufferSize);

  函数功能:从Internet的高速缓存中找到特定入口

  参数说明:

  LPCTSTR lpszUrlSearchPattern,入口特征字段,比如cook:或者visited: 如果该参数没有指定则为*.*

  lpFirstCacheEntryInfo INTERNET_CACHE_ENTRY_INFO的结构体指针 注:这个结构体就是包含缓存信息的结构体 特别介绍一下

  typedef struct _INTERNET_CACHE_ENTRY_INFO {

  DWORD dwStructSize;//结构体大小,常用来帮助决定使用Internet缓存使用的版本

  LPTSTR lpszSourceUrlName;//Internet URL地址名 它处在结构体内存分配的最末端

  LPTSTR lpszLocalFileName;//Internet缓存的本地文件名

  DWORD CacheEntryType;//缓存入口类型 EDITED_CACHE_ENTRY表示缓存入口从网络上下载后已经改变 NORMAL_CACHE_ENTRY表示可以删除释放空间 SPARSE_CACHE_ENTRY表示当前还没有使用的入口 STICKY_CACHE_ENTRY粘贴缓存入口

  DWORD dwUseCount;//当前用户使用缓存的次数

  DWORD dwHitRate;

  DWORD dwSizeLow;//文件大小的低位

  DWORD dwSizeHigh;//文件大小的高位

  FILETIME LastModifiedTime;//最后一次修改的时间

  FILETIME ExpireTime;//入口到期时间

  FILETIME LastAccessTime;//最后一次访问的时间

  FILETIME LastSyncTime;//最后一次与服务器同步的时间

  LPBYTE lpHeaderInfo;//Internet缓存信息头的地址

  DWORD dwHeaderInfoSize;//Internet缓存信息头的信息大小

  LPTSTR lpszFileExtension;//文件扩展(相当于将信息文件备份)

  union {

  DWORD dwReserved;//用于保留 必须为0

  DWORD dwExemptDelta;豁免时间,跟最后访问时间有关(笔者不太明白)

  };

  lpdwFirstCacheEntryInfoBufferSize 表示用于保存信息的结构体的缓存大小]

  返回值:

  如果成功将返回Internet Cache句柄 失败为NULL

  备注

  这个函数和FindNextUrlCacheEntry函数都返回的是一个大小可变的数据,如果返回的是ERROR_INSUFFICIENT_BUFFER 则应该分配lpdwFirstCacheEntryInfoBufferSize大小的内存空间来保存

 

DeleteUrlCacheEntry

  VC声明
 
  BOOL DeleteUrlCacheEntry (
 
  LPCTSTR lpszUrlName);
 
  函数功能
 
  删除Cache中指定的源文件名,如果指定文件存在 则删除
 
  参数说明
 
  lpszUrlName 源文件的名字 该名字不能包含换码符
 
  返回值
 
  如果成功返回真 否则返回假