彻底删除IE的历史记录

网上很多都有删除IE下拉框记录的代码,但是真正删除IE历史记录的代码我还没发现。
所以就写了下面的代码,不过清除完之后要重新启动计算机。有什么不明白请留言。

unit clear;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TClearForm = class(TForm)
    clear: TButton;
    procedure clearClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure Win98Delete(FileName:string);
    Procedure CompleteDelete(SrcFileName:string);
    procedure KillFile;    
    { Public declarations }
  end;

var
  ClearForm: TClearForm;

implementation

{$R *.dfm}
procedure TClearForm.Win98Delete(FileName:string);  //WINDOWS98下删除正在使用的文件
var
  Wininit:string;
  Buffer:array[0..MAX_PATH] of char;
  I,J :integer;
  ini:TStringList;
begin
  FillChar(Buffer,SizeOf(Buffer),0);
  GetWindowsDirectory(Buffer,SizeOf(Buffer));
  Wininit :=IncludeTrailingBackslash(Buffer)+'Wininit.ini';
  Ini :=TstringList.Create;
  try
    if FileExists(Wininit) then Ini.LoadFromFile(Wininit);
    for I := 0 to Ini.Count-1 do Ini[i] := UpperCase(Ini[I]);
    J:=Ini.IndexOf('[Rename]');
    if J = -1 Then
      begin
        Ini.Add('[Rename]');
        J := 0
      end;
      FillChar(Buffer,SizeOf(Buffer),0);
      GetShortPathName(Pchar(FileName),Buffer,SizeOf(Buffer));
      Ini.Insert(J+1,'NUL='+Buffer);
      Ini.SaveToFile(Wininit);
   finally
     Ini.Free;
   end;
end;

Procedure TClearForm.CompleteDelete(SrcFileName:string);//删除正在使用的文件
var
  osVerInfo:TOSVersionInfo;
begin
 osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
 if (GetVersionEx(osVerInfo)) then
   begin
   if osVerInfo.dwPlatformId =VER_PLATFORM_WIN32_NT then   //WINDOWS2000或WINDOWS NT
      MoveFileEx(pansichar(SrcFileName ),nil,MOVEFILE_DELAY_UNTIL_REBOOT)
      else if  osVerInfo.dwPlatformId =VER_PLATFORM_WIN32_WINDOWS  then
         Win98Delete(SrcFileName) //WINDOWS 98

         else
           exit;
    end;
 end;

procedure TClearForm.KillFile;
var
  Sr : TSearchRec;
  ERR:integer;  
  CurrentDir,FilePath : string;
begin
  Err := FindFirst('*.*',faAnyfile,Sr);
  while (Err =0 ) do
  begin
    Application.ProcessMessages;
    if (sr.Attr and faDirectory) =0 then
    begin
      FilePath := ExpandFileName(Sr.Name);
      CompleteDelete(FilePath);
    end;
   if (sr.Attr and faDirectory <>0)  and (sr.Name[1]<>'.') then
   begin

     ChDir(sr.Name);
     Getdir(0,CurrentDir);
     KillFile;//递归
     CompleteDelete(CurrentDir);
     ChDir('..');
   end;
   Err := FindNext(sr);
   end;
  FindClose(sr);
end;

procedure TClearForm.clearClick(Sender: TObject);
begin
  ChDIR('C:/Documents and Settings/Administrator/Local Settings/History/history.ie5');
  //随着你计算机的帐户的不同而改变,别跟我学哦!

  KillFile;
  showmessage('清除成功');
end;

end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值