2009-10-20 12 views
6

Mam potrzebę uruchamiania niektórych zadań automatyzacji w sterowaniu przeglądarką internetową, ale wydaje mi się, że stoję wobec kilku ograniczeń/niewiadomych, że nie jestem w 100% pewien, jak rozwiązać problem. Aplikacja, której używam, nie jest przeznaczona do publicznej publikacji, więc mogę wymusić wstępny warunek, że IE8 jest zainstalowany.Kontrola i izolacja WebBrowser oraz tryb IE8 InPrivate

GeckoFX (http://geckofx.org) byłby świetny, z wyjątkiem tego, że nie oferuje mi akceptowalnego sposobu manipulowania DOM, tak jak przy użyciu metody InvokeMember WebBrowser na obiektach HtmlElement.

WebKit.net będzie jeszcze lepszy, ale jest jeszcze za wcześnie, aby oferować funkcje, których potrzebuję, aby to zrobić.

To pozostawia mi kontrolę WebBrowser. Problem z WebBrowser polega jednak na tym, że po prostu uruchamia IE, który jest dużym grubym współdzielonym środowiskiem ze wszystkimi procesami. Innymi słowy, wszystkie instancje dzielić cookies, sesje, ustawienia proxy, itp

Oto, czego chcę:

  • Pod koniec sesji automatyki, ciasteczka/sesje/obiekty cache nie są zachowywane. Zamiast czyścić globalny folder tymczasowych plików internetowych, czy istnieje sposób, aby uzyskać dostęp do trybu InPrivate naświetlonego przez IE8?

  • Jeśli istnieje sposób dostępu do przeglądania w trybie InPrivate, czy mogę uruchomić dwie sesje trybu InPrivate obok siebie, izolowane od siebie?

Idealnie chciałbym być w stanie uruchomić wiele izolowanych zadań automatyki w oddzielnych wątków, każdy z własną kontrolą przeglądarki prywatnego, każdy z własnym samodzielnie sesji/środowiska, które nie jest zatrzymywane po zakończeniu wykonywania zadania.

Każda pomoc lub wejście w to będzie mile widziane!

+0

Czy masz na myśli Windows Forms formant WebBrowser WPF, lub co? –

+0

Witam, przykro mi, że to nie oferuje żadnej pomocy, ale "WebBrowser jest jednak taki, że uruchamia IE, co jest dużym, współdzielonym środowiskiem ze wszystkimi procesami. Innymi słowy, wszystkie wystąpienia dzielą się plikami cookie, sesjami, ustawieniami proxy, itp." Gdzie zdobyłeś te informacje? Uznałem, że WebBrowser nie udostępnia plików cookie innym procesom ... – JonWells

Odpowiedz

6

Nie, nie można uruchomić formantu WebBrowser w trybie InPrivate; to po prostu nie jest obsługiwany scenariusz.

Tak, można uruchomić dwie instancje IE w trybie InPrivate i oddzielić je od siebie.

pomocą wiersza polecenia: iexplore.exe -prywatna -nomerge

+0

doh. ok dzięki. –

0

Oto niektóre kod, który da Ci dostęp do InPrivate IE

Friend Function Open(Optional ByVal Url As String = "about:blank", Optional ByVal WindowState As ProcessWindowStyle = ProcessWindowStyle.Hidden) As WebBrowser 
On Error Resume Next 

Dim Start As New ProcessStartInfo 
Dim Windows = New ShellWindowsClass 
Dim Count = Windows.Count 
Start.FileName = "iexplore.exe" 
Start.Arguments = "-private -nomerge " & Url 
If WindowState = ProcessWindowStyle.Hidden Then 
    Start.WindowStyle = ProcessWindowStyle.Minimized 
Else 
    Start.WindowStyle = WindowState 
End If 
Process.Start(Start) 

Wait.Reset() 
Do 
    If Windows.Count > Count Then Exit Do 
Loop While Wait.Waiting 

Browser = Windows(Count) 
Browser.Visible = (WindowState <> ProcessWindowStyle.Hidden) 
Return Browser 
End Function 
Powiązane problemy