明生注:今天写了一个刷广告的东西。后来发现删除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