我正在与同事一起开展一个项目,我们一直在我们的办公桌上试图弄清楚这个问题。我们的要求是使用一个网页弹出一个新的Internet Explorer浏览器,然后为其添加两个选项卡。我们找到了一个可以在我的同事的计算机上运行的解决方案,但是当我们在我的计算机和另一个同事的计算机上进行尝试时,它将无法正常工作。到目前为止我们有什么:
using SHDocVw;
...
ShellWindows iExplorerInstances = new ShellWindows();
Process.Start("IExplore.exe", "www.reddit.com");
Thread.Sleep(5000);
string url = "http://www.google.com";
IEnumerator enumerator = iExplorerInstances.GetEnumerator();
enumerator.MoveNext();
InternetExplorer iExplorer = (InternetExplorer)enumerator.Current;
iExplorer.Navigate(url, 0x800); //0x800 means new tab
url = "http://www.banana.com";
enumerator = iExplorerInstances.GetEnumerator();
enumerator.MoveNext();
iExplorer = (InternetExplorer)enumerator.Current;
iExplorer.Navigate(url, 0x800); //0x800 means new tab
同样,这只适用于他的电脑。对我来说,当我尝试运行此代码时,它会正确打开Internet Explorer浏览器,但即使我使用的是InternetExplorer对象,它也会打开Firefox中的选项卡。我深入研究了这个课程并尝试打印出我能找到的任何有用的东西。我的InternetExplorer对象中的name属性是“Windows资源管理器”。我更多地了解了ShellWindows实际上做了什么,这是有道理的,但它对我没有帮助。这似乎意味着它通过InternetExplorer对象而不是Internet Explorer打开我的默认浏览器。我的同事将Chrome作为默认浏览器也有不同的结果。我将默认浏览器切换到Chrome以查看是否存在问题,但随后在Chrome中打开了两个额外的标签。我真正需要的是打开一个Internet Explorer浏览器,其中包含3个标签,每个标签都有自己的URL。非常感谢任何帮助。