http://www.euromind.com/iedelphi/你自己去看看吧

解决方案 »

  1.   

    to Linux2001(猪!是怎么死的) 第一个方法我知道!
    shelll.ControlPanelItem('Inetcpl.cpl');
    后面的三个能不能给出源代码,谢谢了!
    不够的话,可以不断加分!!!to sundayboys(sunboy) 我想知道用 Api函数的实现方法,老用
    别人的组件,没有意思!学不到什么东西!请高手赐教!谢了!
      

  2.   

    实际上
    http://www.euromind.com/iedelphi
    的都是带源码的,并且都是调用的windows api函数和接口,你不想用控件的话也可以分析一个源码。
      

  3.   

    清除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;  
      

  4.   

    这个可以清除历史记录
    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;
      

  5.   

    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;  编译未通过!TInternetCacheEntryInfoNIL^ ????
      

  6.   

    to smhpnuaa() 
    你的第二个方法不行哟!
    另外我是要调用IE自身的方法实现删除,如果直接删除就需要问你们了。
    因为在注册表中可以找到所有目录。
      

  7.   

    to smhpnuaa() 
    你的第二个方法不行哟!
    另外我是要调用IE自身的方法实现删除,如果直接删除就“不”需要问你们了。
    因为在注册表中可以找到所有目录。
      

  8.   

    smhpnuaa:
    很奇怪的,不知道那个地方出了错误,你的第二个方法代码是我写的,但是只能找到一部分的Cache文件,不知道什么地方漏掉了什么?
      

  9.   

    to kingron(沉沦中……) 
    高手指教哟:)你的程序比http://www.euromind.com/iedelphi要
    简单易懂:)