Удаление истории, файлов cookie, кэша и паролей в Internet Explorer 8 с помощью C ++ - PullRequest
1 голос
/ 28 марта 2012

мне нужно программно удалить историю, файлы cookie, кэш и пароли Internet Explorer 8

Более того, мне нужно сделать это тихо :-( без всплывающего окна, поэтому я не могу использовать

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 2

потому что он запускает диалоговое окно прогресса.

Я пытался запустить это из функции CreateProcess с помощью startInfoParams

siStartupInfo.dwFlags = STARTF_USESHOWWINDOW;
siStartupInfo.wShowWindow = SW_HIDE;

, но это не помогло, потому что кажетсянапример, Inetcpl.cpl работает асинхронно и запускает собственный поток, который отображает окно.

Кто-нибудь знает способ реализации этого?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

Вы можете использовать FindFirstUrlCacheEntry(), FindNextUrlCacheEntry() и DeleteUrlCacheEntry() для удаления URL-адресов и файлов из кэша временных файлов Интернета.

Вы можете использовать FindFirstUrlCacheEntryEx() и FindNextUrlCacheEntryEx() для перечисления кэша,Записи журнала и Cookies, но DeleteUrlCacheEntry() работает только для записей кэша.Я не знаю правильный способ удаления записей из истории и файлов cookie.Возможно, вам удастся просто избежать вызова DeleteFile() для имени файла, указанного в структуре INTERNET_CACHE_ENTRY_INFO, если таковое имеется.Или, возможно, используйте InternetSetCookie/Ex(), чтобы перезаписать существующие данные cookie новой отметкой времени, срок действия которой истек.

Я понятия не имею, можно ли программно управлять списком паролей.

0 голосов
/ 28 марта 2012

Вы можете вручную удалить все файлы, расположенные в TemporaryInternetFiles и аналогичных каталогах. Просто выясните, какие из них вы хотите удалить. Чтобы удалить целые непустые каталоги, используйте комбинацию FindNextFile / DeleteFile / DeleteDirectory или используйте SHFileOperation. Есть рабочий код на codeguru .

...