Поиск по блогу

четверг, 10 марта 2011 г.

Delphi: Как удалить cookies из TWebBrowser?

В этой статье не будет ничего скандально нового :) Просто уже 2 комментатора спросили в заметке о cookies в TWebBrowser, как их удалять. В гугле, ясно дело, решение найти просто, но почему-то для кого-то проще спросить и ждать :)

В общем, если на мой блог о парсинге приходят по этому запросу, то надо на него ответить. :)

Это готовое решение, взятое из инета и опробованное мной. В результате будут подчищены все файлы с куками, хранящиеся в c:\Documents and Settings\Имя_пользователя\Cookies.

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;


Для чего может пригодиться очистка кукисов? Ну, например, вы написали какое-то свое приложение с TWebBrowser и заходите на определенный сайт через список прокси... ;)
___

Сегодня объявляю гранд мерси akkadites, автору блога "Обзор полезного софта", и Seorit.ru за обзоры RSSAdder-а.
___
Чтобы быть в курсе обновлений блога, можно подписаться на RSS.

Статьи схожей тематики:



10 комментариев:

  1. Хотелось бы увидеть пару статей на тему ФРИЛАНС, как вы на это смотрите?

    ОтветитьУдалить
  2. Nail, я сейчас практически не занимаюсь фрилансом — работаю над своими проектами. Так что "свежим" опытом поделиться не могу :)

    ОтветитьУдалить
  3. при таком способе куки удаляются но при обновлении страницы сессия не прирывается нужно только перезапускать программ, это как то можно решить?

    ОтветитьУдалить
  4. Как вариант — можно написать MDI-приложение, где веббраузер открывается в отдельных окошках. Программу не надо будет перезапускать - просто открыть новое окно.

    ОтветитьУдалить
  5. Здравствуйте, Мария
    У вас достаточно интересный блог, нашел много полезного для себя. Единственное - почему вы давно не писали ничего нового? Нет времени или идей?

    ОтветитьУдалить
  6. morgot, спасибо :)
    Да, совсем что-то перестала писать сюда - времени нет и много других задач. Не знаю даже, когда доберусь до публикации чего-нибудь новенького, в основном сейчас занимаюсь не парсингом.

    ОтветитьУдалить
  7. А чтобы удалить куки и не перезапускать ничего можно использовать код
    uses WinInet;
    procedure EndBrowserSession;
    InternetSetOption(nil, INTERNET_OPTION_END_BROWSER_SESSION, nil, 0);
    end;

    ОтветитьУдалить
  8. я просто восхищаюсь вашыми работами. Большое спасибо за интересную и полезную инфу оч. помогло. читал об очистке кукисов в веббраузере. Анету ли у вас в закромах ещо и очистки кеша, так как зделал регистратор аков на веббраузере(не лучшый вариант) но для пост запроса никак не удавалось получить один код со страницы.Так вот чтоб не палится на множественной регистрации желательно чистить и кукисы и кеш

    ОтветитьУдалить
  9. seoblog, решение можно найти на форумах :) Наверное, уже нашли?

    ОтветитьУдалить

Комментарии модерируются, вопросы не по теме удаляются, троллинг тоже.

К сожалению, у меня нет столько свободного времени, чтобы отвечать на все частные вопросы, так что, может, свой вопрос лучше задать на каком-нибудь форуме?

Поделиться