怎么清除ie历史记录

gxgxfish0813 2004-03-11 11:23:10
怎么清除ie历史记录
...全文
121 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitetiger8 2004-03-30
  • 打赏
  • 举报
回复

清除IE历史记录
作者: 发表日期:2003年5月28日

--------------------------------------------------------------------------------



清除Internet Explorer临时文件 在TfrmMain你必须引用WinINet单元 Uses WinINet; 然后放上一个TButton按钮命名为btnEmptyCache,加入以下代码:

Procedure TfrmMain.btnEmptyCacheClick( Sender : TObject );

Var

lpEntryInfo : PInternetCacheEntryInfo;

hCacheDir : LongWord;

dwEntrySize : LongWord;

dwLastError : LongWord;

Begin

dwEntrySize := 0;

FindFirstUrlCacheEntry(NIL,TInternetCacheEntryInfoNIL^ ),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 ( GetLastError = ERROR_INSUFFICIENT_BUFFER ) Then Begin

GetMem( lpEntryInfo, dwEntrySize );

If ( FindNextUrlCacheEntry( hCacheDir, lpEntryInfo^,

dwEntrySize ) ) Then

DeleteUrlCacheEntry( lpEntryInfo^.lpszSourceUrlName );

FreeMem(lpEntryInfo);

End;

Until ( dwLastError = ERROR_NO_MORE_ITEMS );


End;

*********************

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;


procedure TForm1.Button1Click(Sender: TObject);

begin

ClearIEHistory;

end;

**********************

uses wininet;


procedure TForm1.Button1Click(Sender: TObject);

var

cache_info:PInternetCacheEntryInfo;

cbSizeOf_Cache_info:dword;

hw:hwnd;

buf:tstrings;

begin

// buf:=tstringlist.Create;

new(cache_info);

hw:=FindFirstUrlCacheEntryEx(nil,0,NORMAL_CACHE_ENTRY or URLHISTORY_CACHE_ENTRY,0,cache_info,@cbSizeOf_Cache_info,nil,nil,nil);

if hw<>0 then

begin

DeleteUrlCacheEntry(cache_info.lpszSourceUrlName);

// buf.Add(cache_info.lpszSourceUrlName);

while FindNextUrlCacheEntryEx(hw,cache_info,@cbSizeOf_Cache_info,nil,nil,nil) do

// buf.Add(cache_info.lpszSourceUrlName);

DeleteUrlCacheEntry(cache_info.lpszSourceUrlName);

end;

FindCloseUrlCache(hw);

dispose(cache_info);

// showmessage(buf.Text);

// buf.Free;

end;

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧