2009-10-20 28 views
6

Tôi cần chạy một số tác vụ tự động trong điều khiển trình duyệt web nhưng dường như tôi đang phải đối mặt với một số hạn chế/ẩn số mà tôi không chắc chắn 100% cách giải quyết. Ứng dụng tôi đang chạy không dành cho bản phát hành công khai, vì vậy tôi có thể thực thi một điều kiện tiên quyết mà IE8 được cài đặt.Điều khiển WebBrowser, cách ly và IE8 Chế độ InPrivate

GeckoFX (http://geckofx.org) sẽ là tuyệt vời ngoại trừ nó không cung cấp cho tôi một cách chấp nhận được để thao tác DOM như tôi sẽ sử dụng phương thức InvokeMember của WebBrowser trên các đối tượng HtmlElement.

WebKit.net sẽ còn tốt hơn nữa nhưng còn quá sớm để phát triển chức năng tôi cần thực hiện.

Điều này khiến tôi có quyền kiểm soát WebBrowser. Tuy nhiên, vấn đề với WebBrowser là nó chỉ chạy IE, một môi trường chia sẻ chất béo lớn với tất cả các quy trình. Nói cách khác, tất cả các trường chia sẻ các tập tin cookie, phiên, cài đặt proxy vv

Dưới đây là những gì tôi muốn:

  • Vào cuối một phiên tự động hóa, cookies/buổi/đối tượng bộ nhớ cache không được giữ lại. Thay vì xóa thư mục Tệp Internet Tạm thời toàn cầu, có cách nào để tôi truy cập chế độ InPrivate do IE8 hiển thị không?

  • Nếu có cách truy cập InPrivate, tôi có thể chạy hai phiên InPrivate-mode riêng biệt với nhau không?

Lý tưởng tôi muốn có thể chạy nhiều tác vụ tự động bị cô lập trong các chủ đề riêng biệt, mỗi điều khiển trình duyệt riêng, mỗi phiên riêng biệt không được giữ lại khi tác vụ hoàn tất.

Bất kỳ trợ giúp hoặc đầu vào nào sẽ được đánh giá cao!

+0

Bạn có nghĩa là Windows Forms điều khiển WebBrowser, WPF, hoặc gì? –

+0

Xin chào, tôi xin lỗi vì điều này không cung cấp bất kỳ trợ giúp nào nhưng "WebBrowser mặc dù nó chỉ chạy IE, một môi trường chia sẻ chất béo lớn với tất cả các quy trình. Nói cách khác, tất cả các trường hợp chia sẻ cookie, phiên, cài đặt proxy, v.v. " Bạn đã thu thập thông tin này ở đâu? Tôi hiểu rằng WebBrowser không chia sẻ cookie của mình với các quy trình khác ... – JonWells

Trả lời

6

Không, bạn không thể chạy điều khiển WebBrowser ở chế độ InPrivate; nó đơn giản không phải là kịch bản được hỗ trợ.

Có, bạn có thể chạy hai phiên bản IE trong chế độ InPrivate và cách ly chúng với nhau.

Sử dụng dòng lệnh: iexplore.exe -private -nomerge

+0

doh. được rồi cảm ơn. –

0

Dưới đây là một số mã mà sẽ cung cấp cho bạn truy cập vào một 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 
Các vấn đề liên quan