您的位置:首页 > 编程语言 > Delphi

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

2012-03-12 11:09 519 查看
转自 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 源文件的名字 该名字不能包含换码符

  返回值

  如果成功返回真 否则返回假
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: