0

背景

我们正在开发一个应用程序,您可以在其中搜索互联网上的一些内容或打开网页,您也可以选择要使用的浏览器。

因此,例如,如果我想打开 Google.com,并且希望它在 Chrome 中打开,那么网页应该在 Chrome 中打开。如果我想在 IE 中打开 Google.com,那么 IE 应该会打开 Google 页面。

现在关于在浏览器中使用选项卡:由于现在所有浏览器都支持它,因此在新选项卡中打开网页已经由浏览器本身处理,无论是 Chrome 还是 Firefox。但是对于 IE,如果 IE 是您的默认浏览器,那么 IE 将在新的 IE 选项卡中打开网页。但是,如果 IE 不是您的默认浏览器,那么 IE 将改为在新的 IE 窗口中打开网页。

一些附加信息

有几种方法可以通过以下方式打开网页: 默认 Web 浏览器的代码

Process.Start(new ProcessStartInfo()
{
    FileName = "http://www.google.com"
});

或者,如果您想在默认浏览器之外的其他浏览器中打开网页。以火狐为例

string a = "%programfiles%\\Mozilla Firefox\firefox.exe";
a = Environment.ExpandEnvironmentVariables(a);

Process.Start(new ProcessStartInfo()
{
    FileName = a,
    Arguments = "http:\\www.google.com"
});

命令

>start "http://www.google.com"

或者

cmd /c 开始“ http://www.gooogle.com

问题

即使 IE 不是您的默认浏览器,如何在新选项卡上打开 IE(版本 8、9 和 10)中的网页?

4

2 回答 2

2

Windows 在此处理解注册表中任何条目的简写:

HKEY_LOCAL_MACHINE
   SOFTWARE
       Microsoft
           Windows
               CurrentVersion
                   App Paths

因此,假设浏览器安装没有问题,每个客户端都会有以下条目:

  • 火狐浏览器
  • IEXPLORE.exe
  • Chrome.exe

这意味着,您实际上可以使用这种东西:

Process.Start(new ProcessStartInfo()
{
    FileName = "firefox.exe",
    Arguments = " \"http://www.google.com\""
});

Process.Start(new ProcessStartInfo()
{
    FileName = "iexplore.exe",
    Arguments = " \"http://www.google.com\""
});

Process.Start(new ProcessStartInfo()
{
    FileName = "chrome.exe",
    Arguments = " \"http://www.google.com\""
});

..从而针对特定的浏览器。

于 2013-06-13T02:35:18.687 回答
1

如果您打算为此使用 Internet Explorer,您可以执行以下操作:

创建一个(临时)脚本文件,名为temp.js. 把这个放进去:

var navOpenInBackgroundTab = 0x1000;
var objIE = new ActiveXObject("InternetExplorer.Application");
objIE.Navigate2(FIRST TAB URL GOES HERE);
objIE.Navigate2(SECOND TAB URL GOES HERE, navOpenInBackgroundTab);
objIE.Navigate2(NTH TAB URL GOES HERE, navOpenInBackgroundTab);
objIE.Visible = true;

然后在创建它的目录中调用此脚本:wscript temp.js

之后不要忘记删除它:

哦,如果这听起来像一个可怕的黑客,相信我:它是。

于 2013-06-13T02:09:48.847 回答