2016-05-08 48 views
5

Jeśli mam otwartą instancję IE, z dostępem do podstawowych obiektów COM (IWebBrowser2 etc ...) mogę programowo wyczyścić całą historię, pliki cookie i buforowane dane?Programowo wyczyścić historię IE, pliki cookie, pamięć podręczną, gdy IE jest otwarte

Czy można to zrobić zarówno w trybie prywatnym, jak i nieprywatnym, bez zamykania przeglądarki i ponownego otwierania?

Próbowałem odradzania rundll32.exe inetcpl.cpl,ClearMyTracksByProcess 1023 z różnymi kombinacjami flag bitowych przekazanych jako argumenty, ale wydaje się, że działa tylko wtedy, gdy przeglądarka jest zamknięta, i potrzebuję rozwiązania, które pozwala przeglądarce pozostać otwartą.

+0

Możliwy duplikat http://stackoverflow.com/questions/9911713/delete-internet-explorer-8-history-cookies-cache-and-passwords-with -c – davidcondrey

+0

To jest nieudokumentowane i zmienia się z upływem czasu, ale możesz wypróbować takie sztuczki jak instalowanie globalnego haka CBT lub callwndproc, a następnie wywołanie funkcji 'ShowDeleteBrowsingHistoryDialog (HWND hWndParent)' wyeksportowanej przez 'inetcpl.cpl', przechwytywanie okna dialogowego, które będzie wyświetlane z twojego haka, aby uczynić go niewidzialnym, następnie programowo zaznacz pola tam i wyślij komendę symulującą przycisk przesyłania, i ponownie użyj globalnego haka, aby ukryć okna postępu wyświetlane przez podprocesy zainicjowane przez tę funkcję. – CherryDT

+0

Należy zauważyć, że funkcja ta musi być wywoływana z poziomem integralności średniej, w przeciwnym razie wyczyściłaby tylko dane o niskiej integralności. Możesz także zagrać jeszcze bardziej za pomocą 'ClearMyTracksByProcess', która, ponieważ nowsze wersje Windows (nie wiesz, która dokładnie) przyjmuje różne rodzaje argumentów:' Flagi: AAA WinX: BBB WinY: CCC IEFrame: DDD' (gdzie A, B, C są dziesiętne, a D jest w systemie szesnastkowym i zawsze używa 16 cyfr). - Flagi wydają się być wartościami flag, które już znasz (mimo, że zostały dodane nowe), to jest okno postępu poz. i ewentualnie HWND okna IEFrame. Ten * może * może być użyty do aktualizacji IE o tym. – CherryDT

Odpowiedz