日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

刪除cookies及上網(wǎng)歷史記錄

 aaie_ 2011-11-21

unit uDelCache;

interface
uses Registry,ShellApi, WinInet,ShlObj,ComObj, Forms, Windows, SysUtils;


  procedure DelHistory;//刪除歷史記錄(ie緩沖文件夾下所有文件)
  procedure DelRegCache; //清理注冊表
  procedure DelHistory;//刪除歷史記錄(ie緩沖文件夾下所有文件)
  function ClearIEHistory:integer;//補充刪除網(wǎng)頁歷史

//  procedure TForm1.Button1Click(Sender: TObject);
//begin
//  try
//  DelRegCache;//清理注冊表
//  DelCookie; //刪除cookies(ie緩沖文件夾下面cookies文件)
//  DelHistory; //刪除歷史記錄(ie緩沖文件夾下所有文件)
//  //C:\Documents and Settings\用戶名\Local Settings\Temporary Internet Files
//  ClearIEHistory; //補充刪除網(wǎng)頁歷史
//  except
//  abort;
//  end;
//end;

implementation
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;

//刪除cookies
procedure DelCookie;
var
  dir:string;
begin
  try
    InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
    dir:=GetCookiesFolder;
    ShellDeleteFile(dir+'\*.txt'+#0); //網(wǎng)上很多代碼這里沒有加最后的#0,在xp下經(jīng)測試會報錯
  except
    abort;
  end;
end;

//刪除歷史記錄
procedure DelHistory;
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord ;
  dwEntrySize, dwLastError: LongWord;
begin
  try
    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字節(jié)的內(nèi)存}
        if FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize) then
          DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
        FreeMem(lpEntryInfo);
      end;
    until (dwLastError = ERROR_NO_MORE_ITEMS);
  except
    abort;
  end;
end;

//補充函數(shù)

type  
  TSTATURL = record  
  cbSize: DWORD;  
  pwcsUrl: DWORD;  
  pwcsTitle: DWORD;  
  ftLastVisited: FILETIME;  
  ftLastUpdated: FILETIME;  
  ftExpires: FILETIME;  
  dwFlags: DWORD;  
  end;  
   
  type  
  IEnumSTATURL = interface(IUnknown)  
  ['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']  
  function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;  
  function Skip(celt: Longint): HRESULT; stdcall;  
  function Reset: HResult; stdcall;  
  function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;  
  function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;  
  end;  
   
  type  
  IUrlHistoryStg = interface(IUnknown)  
  ['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']  
  function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;  
  function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;  
  function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: TSTATURL): HResult; stdcall;  
  function BindToObject(pocsUrl: PWideChar; var riid: TGUID; out ppvOut: Pointer): HResult; stdcall;  
  function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;  
  end;  
   
  type  
  IUrlHistoryStg2 = interface(IUrlHistoryStg)  
  ['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']  
  function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;  
  fWriteHistory: Integer; var poctNotify: Pointer;  
  const punkISFolder: IUnknown): HResult; stdcall;  
  function ClearHistory: HResult; stdcall;  
  end;  
   
function ClearIEHistory:integer;  
const
  CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
var
  IEHistory:IUrlHistoryStg2;
begin
  IEHistory:=CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg2;
  IEHistory.ClearHistory;
end;


end.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章