Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Удаление только Temporaly Internet Files


Автор: Ak47black 18.2.2007, 21:18
Помогите понять что я неправильно делаю
Хочю  написать процедуру которая удаляет только Temporaly Internet Files.
Код

procedure DeleteTemporalyInternetFiles;
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord;
  dwEntrySize: LongWord;
begin
  dwEntrySize := 0;
  FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
  GetMem(lpEntryInfo, dwEntrySize);
  try
    if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
    hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
    if hCacheDir <> 0 then
    try
      repeat
        if lpEntryInfo^.CacheEntryType = URLHISTORY_CACHE_ENTRY then
          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);
    finally
      FindCloseUrlCache(hCacheDir);
    end;
  finally
    FreeMem(lpEntryInfo, dwEntrySize);
  end;
end;

Код взял из drkb23 и переделал по следущей статье от Rouse. http://forum.sources.ru/index.php?showtopic=75237
Цитата

Для удаления только куков или временных файлов нужно смотреть тип lpEntryInfo^.CacheEntryType на присутствие COOKIE_CACHE_ENTRY (куки) или URLHISTORY_CACHE_ENTRY (хистори)

Сделал вроде правильно ,но код неработает  smile  .

Автор: Alexeyt 23.2.2007, 21:58
Ak47black, 
Что-то делаешь неправильно, не знаю что.

Посмотри еще код плагина MSIE Cache Browser для Тотала. Там тоже такая енумерация есть. Может, поможет.

http://wincmd.ru/plugring/msie_cache.html
http://atorg.net.ru/files/wfx_MSIECache_src.rar

Автор: tigger 24.2.2007, 03:28
По моему нужно так

if lpEntryInfo^.CacheEntryType = NORMAL_CACHE_ENTRY then

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)