Delphi 清除IE缓存 internet临时文件 cookie 历史记录 表单记录 上网密码[转]
转自 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
请发表评论