程序中如何清空IE的缓存
用什么procedure or API
不要告诉我,删掉Temporary Internet Files

解决方案 »

  1.   

    //uses WinInet;
    procedure DeleteIECache;
    var
      lpEntryInfo: PInternetCacheEntryInfo;
      hCacheDir: LongWord; 
      dwEntrySize: LongWord; 
    begin 
      dwEntrySize := 0; 
      FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); 
      GetMem(lpEntryInfo, dwEntrySize); 
      if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize; 
      hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); 
      if hCacheDir <> 0 then  
      begin 
        repeat 
          DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName); 
          FreeMem(lpEntryInfo, dwEntrySize); 
          dwEntrySize := 0; 
          FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize); 
          GetMem(lpEntryInfo, dwEntrySize); 
          if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize; 
        until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize); 
      end; 
      FreeMem(lpEntryInfo, dwEntrySize); 
      FindCloseUrlCache(hCacheDir); 
    end; 
      

  2.   

    运行后观察
    Temporary Internet Files\Content.IE5
    中文件并没少跟踪程序,发现  if hCacheDir <> 0 then  中的代码从未被执行,即 hCacheDir总是为 0
      

  3.   

    不応該呀、「FindFirstUrlCacheEntry」是OS内核「WinInet DLL」里的東東、
    与IE的版本没関係、我用着没有問題呀。現給出大版 technofantasy [原作] 的作品↓
    http://dev.csdn.net/develop/article/13/13111.shtm他用的是「FindnextUrlCacheEntryEx」関数、NI試試看。