Всем, добрый день. Не секрет, что IE сохраняет все посещённые адреса в файлы: cash, cookie, history и т.д. Необходимо программно очистить файл index.dat с посещёнными url: "C:\Documents and Settings\<User>\Local Settings\Temporary Internet Files\Content.IE5\index.dat" Нужно затереть не все ссылки, а избирательно. Без использования драйвера и функций, за которыми следит AV: CreateRemoteThread, WriteProcessMemory, etc. index.dat всегда открыт ОС и видимо флажки FILE_SHARE_WRITE и FILE_SHARE_DELETE не выставлены, поэтому изменять в лоб его нельзя. Вариантов несколько: 1. Умудриться всётаки открыть для записи 2. Каждый перед открытием программно настраивать реестр, чтоб url вообще не сохранялись, после "работы", откатывать реестр назад. 3. Затирать свои адреса мусорными url, index.dat имеет фиксированный размер ~ 13 мб (теоретически) Поделитесь опытом, как сделать так, чтобы index.dat не хранил некоторые ссылки.
накуя городить весь этот огород, когда есть api для работы с кешем?) COM/API - примеров в гугле - куча.
planet спасибо за ответ. Вопрос был как чистить index.dat файлы, а не как чистить кеш. Кеш чистится прекрасно. Замечу, что при очистке кеша штатными функциями(DeleteUrlCacheEntry) содержимое файла index.dat не очищается. Работающих примеров, позволяющих очищать index.dat, я пока не встретил.
хм, может он потом очиститься. Но по идее раз DeleteUrlCacheEntry вызвал, то пох что там в файле висит, IE про это не узнает. Еще один вариант, путь к файлу с кешем есть в реестре, попробуй поменять на другой, тогда старый index.dat - освободиться.
Чистить надо не index.dat, а папки с кешом рядом с ним. После запуска ИЕ движек кеша сам очистит этот файл.