2016-05-08 3 views
5

Если у меня есть экземпляр IE open, доступ к базовым COM-объектам (IWebBrowser2 и т. Д.), Я могу программно очистить всю историю, файлы cookie и кэшированные данные?Программно очистить историю IE, куки, кеш, когда IE открыт

Есть ли способ сделать это как в частном режиме, так и в не приватном режиме без закрытия браузера и его повторного открытия?

Я испробовал нереста rundll32.exe inetcpl.cpl,ClearMyTracksByProcess 1023 с различными комбинациями бит-бит, переданных в качестве аргументов, но он работает только при закрытии браузера, и мне нужно решение, которое позволяет браузеру оставаться открытым.

+0

Возможный дубликат http://stackoverflow.com/questions/9911713/delete-internet-explorer-8-history-cookies-cache-and-passwords-with -c – davidcondrey

+0

Это недокументировано и изменяется со временем, но вы можете попробовать трюки, например, установить глобальный крючок CBT или callwndproc, а затем вызвать функцию ShowDeleteBrowsingHistoryDialog (HWND hWndParent), экспортированную 'inetcpl.cpl', поймав диалог, который будет отображаться от вашего крючка, чтобы сделать его невидимым, затем программным образом установите флажки там и отправьте командное сообщение, имитирующее кнопку отправки, и снова используйте глобальный крючок, чтобы также скрыть окна прогресса, отображаемые подпроцессами, порожденными этой функцией. – CherryDT

+0

Обратите внимание, что эту функцию нужно вызывать со средним уровнем целостности, иначе она очистит только данные с низкой целостностью. Вы также можете немного поиграть с «ClearMyTracksByProcess», который, поскольку новые версии Windows (не уверенные, что именно) принимает разные аргументы: 'Флаги: AAA WinX: BBB WinY: CCC IEFrame: DDD' (где A, B, C являются десятичными, а D - шестнадцатеричными и всегда использует 16 цифр). Флаги - это значения флагов, которые вы уже знаете (хотя новые были добавлены), тогда есть окно выполнения pos. и, возможно, HWND окна IEFrame. Этот * может * использоваться для обновления IE. – CherryDT

ответ

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