我会在第一次尝试时尽可能详细地说明这一点,上帝知道我可能会错过一些东西。
到目前为止,我所做的是一个可以调用默认Web浏览器的程序,这很好。我想要达到的目标,我会分解为步骤,因为坦率地说,我怀疑它们都是相互依存的:
如果默认Web浏览器已打开,则当前调用只会打开一个新选项卡。理想情况下,我希望它在每次调用时创建一个新的窗口实例,原因与#3有关。我现在如何拥有它是:
System.Diagnostics.Process.Start(storage.urls[storage.tabcount-1]);
我也尝试过提供here的代码段,但是Visual Studio 2015不再支持BrowserApplication类,或者我错过了使用某个地方,但是关于该类的信息很少。这个可能有一个非常简单的解决方案。
(可选)将新调用的Web浏览器包装在Windows窗体中。让我们面对现实,这个基本上是不必要的,但为了视觉起见,我不会抱怨能够将Web浏览器包装在Windows窗体中。它可能会做一些事情,比如调整浏览器大小并轻松移动它。不过,我的待办事项清单上还是相当低的。但是,它确实将1和3完美地结合在一起。
使新创建的Web浏览器成为主应用程序的子级。我真的想要一种能够随时通过程序读取信息和设置Web浏览器的方法。能够成为孩子可能会让我访问该功能。我可以添加到程序中的某种集成dll,但有些东西阻止我查看。首先,我仍然无法在新窗口中打开浏览器,我也不想控制所有已存在的选项卡。其次,我真的希望代码不依赖于浏览器。这是我希望它打开默认浏览器的原因之一,因为我希望用户不会注意到他们正常浏览习惯的任何差异。
可能大约90%的问题显而易见的解决方案是将Web浏览器工具编码到Windows窗体中。这是我的后备选项,但我有一些我不喜欢的事情。首先,我必须在Web浏览器中创建多标签功能以及所有其他浏览器功能方面重新发明轮子。最后,用户最终也会注意到与正常浏览体验存在很大差异。