web浏览器控件,分离和IE8的InPrivate模式(WebBrowser control, is

2019-08-21 19:12发布

我有一个需要运行在Web浏览器控制一些自动化的任务,但我似乎面临一些限制/我不是100%确定如何解决未知数。 我跑的应用是不公开发行,所以我可以强制安装IE8的先决条件。

GeckoFX( http://geckofx.org只是它不给我操作DOM,我将使用WebBrowser的InvokeMember方法上的HtmlElement对象能够接受的方式)将是巨大的。

WebKit.net甚至会更好,但它在它的发展提供我需要做这一点的功能为时尚早。

这给我留下了WebBrowser控件。 与web浏览器的问题是,它虽然只是运行IE浏览器,这是所有进程大胖共享环境。 换句话说,所有实例共享的cookies,会话,代理设置等。

这是我想要的东西:

  • 在自动化会议结束,饼干/会话/缓存中的对象不会被保留。 而不是清除全球的Internet临时文件夹,是有我的方式来访问由IE8暴露的InPrivate模式?

  • 如果进入隐私浏览的方式,有可能是我运行两个的InPrivate模式会话并排侧彼此隔离?

理想情况下,我想能够在单独的线程上运行多个独立的自动化任务,每个都有自己的私人浏览器控件,每个都有自己的孤立会话/环境的任务完成时不保留。

任何帮助或输入此将不胜感激!

Answer 1:

不,你不能运行的InPrivate模式WebBrowser控件; 这根本就不是一个支持的方案。

是的,你可以运行的InPrivate模式IE的两个实例,并相互隔离。

使用命令行:IEXPLORE.EXE - 私人-nomerge



Answer 2:

下面是一些代码,这将使你访问一个的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


文章来源: WebBrowser control, isolation and IE8 InPrivate mode