2009-02-04 20 views

ответ

3

Не могли бы вы просто найти C:\Documents and Settings\user\Local Settings\Temporary Internet Files для файлов с 'cookie' в имени файла?

Вот вызов Win32, чтобы получить папку:

BOOL SHGetSpecialFolderPath(
    HWND hwndOwner, 
    LPTSTR lpszPath, 
    int nFolder, 
    BOOL fCreate 
); 

Pass CSIDL_COOKIES как nFolder аргумента.

Проверьте эту ссылку A Cleanup API for Windows.

Вы можете удалить файлы cookie с кешем через функции FindFirstUrlCacheEntry, FindNextUrlCacheEntry и DeleteUrlCacheEntry. Вы можете передать 'cookie:' в качестве первого аргумента (LPCTSTR lpszUrlSearchPattern) в FindFirstUrlCacheEntry.

+0

Это очень уродливое обходное решение. Вы можете удалить файлы теоретически, но в то время как Internet Explorer работает, это не заметит. Правильный способ - использовать API для этого (как правильно ответил Даниэль) – Elmue

5

На самом деле, я понял!

В Windows API у вас есть функция для создания куки, называемые InternetSetCookie, и использовать его как это:

InternetSetCookie("http://teste.com", NULL, "name = value; expires = Sat,01-Jan-2020 00:00:00 GMT"); 

Но, если вы хотите удалить куки, а не создавать его, вы просто должны установить поле действия где-то в прошлом, как это:

InternetSetCookie("http://teste.com", NULL, "name = value; expires = Sat,01-Jan-2000 00:00:00 GMT"); 

Более подробную информацию об этом в Managing Cookies.

Смежные вопросы