Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Пример очистки cookie и Temporaly Internet Files

Delphi , ОС и Железо , Windows

Code:

uses ..., WinInet;
 
procedure DeleteCache;
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
       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;

Автор Rouse_

Взято из http://forum.sources.ru

Что это код?

Код - процедура DeleteCache, которая итерирует по всем закэшированным URL в системе и удаляет их. Это эффективно очищает кэш браузера и временные файлы Интернета.

Как работает?

Описание шаг за шагом:

  1. dwEntrySize := 0; - Инициализирует переменную для хранения размера кэш-ентрии.
  2. FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); - Поиск первого закэшированного URL в системе. Параметры nil указывают, что мы не имеем конкретной кэш-ентрии в виду.
  3. GetMem(lpEntryInfo, dwEntrySize); - Выделяет память для хранения информации о кэш-ентрии.
  4. try...finally - Блок, используемый для обеспечения освобождения выделенной памяти даже если возникнет исключение.
  5. Внутри блока try:
    • Если найдена кэш-ентрия (dwEntrySize > 0), код получает имя источника URL и удаляет соответствующую кэш-ентрию с помощью DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);.
    • Код затем освобождает выделенную память (FreeMem(lpEntryInfo, dwEntrySize);) и сбрасывает переменную dwEntrySize.
    • Он повторяет этот процесс, пока не будет найдено больше кэш-ентрий (until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize);).
  6. Вне блока try...finally:
    • Код освобождает любую оставшуюся выделенную память (FreeMem(lpEntryInfo, dwEntrySize);).

Альтернативное решение:

Если вы хотите очистить только кэш конкретного браузера (например, Internet Explorer), можно использовать интерфейс IInternetCacheManager и его метод DeleteCacheEntry(). Это требует больше кода и обработки ошибок, но обеспечивает более тонкую контроль над процессом удаления кэша.

Пример модификации кода для очистки только кэша Internet Explorer:

uses
  WinInet;

procedure DeleteIECache;
var
  icm: IInternetCacheManager;
  pUnk: IUnknown;
begin
   // Получение интерфейса IInternetCacheManager для Internet Explorer
  CoCreateInstance(CLASS_InternetCacheManager, nil, CLSCTX_INPROC_SERVER, pUnk);
  icm := pUnk as IInternetCacheManager;

   // Очистка кэша
  icm.DeleteCacheEntry(nil);

   // Освобождение интерфейса
  pUnk := nil;
end;

Обратите внимание, что этот код требует установки Internet Explorer на системе и может не работать для других браузеров.

В статье приведен пример кода на Delphi, который демонстрирует процесс очистки cookie и Temporaly Internet Files.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Windows ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:43:43/0.0050430297851562/1