清空IE记录()

//==============================================================================
{*******************************************************}
{                                                       }
{       清空IE记录                                      }
{                                                       }
{       版权所有 (C) 2012 testStudio                    }
{                                                       }
{       最后修改  2012年7月23日13:49:28                 } 
{                                                       }      
{       修改者  ROMAN                                   }  
{                                                       }                            
{*******************************************************}
//==============================================================================
//引用uses Registry,wininet,FileCtrl,shlobj,shellapi;
//调用 方法
// try
//    screen.cursor:=crHourGlass;
//    DelRegCache;
//    DelCookie;
//    DelHistory;
// finally
//    screen.cursor:=crDefault;
// end;
//==============================================================================
procedure DelRegCache();
var
   reg:TRegistry;
begin
   reg:=Tregistry.create;
   reg.RootKey:=HKEY_CURRENT_USER;
   reg.DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs');
   reg.Free;
end;

function GetCookiesFolder():string;
var
    pidl:pItemIDList;
    buffer:array [ 0..255 ] of char ;
begin
   SHGetSpecialFolderLocation(
     application.Handle , CSIDL_COOKIES, pidl);

   SHGetPathFromIDList(pidl, buffer);
   result:=strpas(buffer);
end;


//==============================================================================
function ShellDeleteFile(sFileName: string): Boolean;
var
  FOS: TSHFileOpStruct;
begin
   FillChar(FOS, SizeOf(FOS), 0); {记录清零}
   with FOS do
   begin
       wFunc := FO_DELETE;//删除
       pFrom := PChar(sFileName);
       fFlags := FOF_NOCONFIRMATION;
   end;
   Result := (SHFileOperation(FOS) = 0);
end;

//==============================================================================
procedure DelCookie();
var
   dir:string;
begin
   InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
   dir:=GetCookiesFolder;
   ShellDeleteFile(dir+'\*.txt');
end;


//==============================================================================
procedure DelHistory();
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord ;
  dwEntrySize, dwLastError: LongWord;
begin
   dwEntrySize := 0;
   FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
   GetMem(lpEntryInfo, dwEntrySize);

   hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
   if hCacheDir <> 0 then
      DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
   FreeMem(lpEntryInfo);

  repeat
     dwEntrySize := 0;
     FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^),
       dwEntrySize);
     dwLastError := GetLastError();
     if dwLastError = ERROR_INSUFFICIENT_BUFFER then //如果成功
     begin
         GetMem(lpEntryInfo, dwEntrySize); {分配dwEntrySize字节的内存}
         if FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) then
            DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
         FreeMem(lpEntryInfo);
     end;
  until (dwLastError = ERROR_NO_MORE_ITEMS);
end;
//==============================================================================




原文地址:https://www.cnblogs.com/xe2011/p/2609324.html