我想打开Google Chrome选项卡或默认浏览器。 然后在用户选择后关闭它。打开Chrome选项卡并关闭它
我使用
Process.Start("HTTP://www.MySite.Com");
打开浏览器,但我没有处理它来关闭它。我也不想关闭整个浏览器,只是我打开的标签。
我想打开Google Chrome选项卡或默认浏览器。 然后在用户选择后关闭它。打开Chrome选项卡并关闭它
我使用
Process.Start("HTTP://www.MySite.Com");
打开浏览器,但我没有处理它来关闭它。我也不想关闭整个浏览器,只是我打开的标签。
这对我的作品在Firefox:
var proc = Process.Start("firefox.exe", "http://www.google.nl");
proc.Kill();
因为我的Firefox设置为一个窗口模式下,它会打开一个标签。当我发出Kill()方法时,该选项卡被杀死(但不是主窗口)。在这种情况下,Close()方法不适用于我。
你可以尝试与Chrome相同。您必须将URL作为参数提供给真正的程序,而不是URL本身,否则proc为null。
下面是使用默认浏览器一个完整的例子:
string browser = string.Empty;
RegistryKey key = null;
try
{
key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command");
//trim off quotes
if (key != null)
{
browser = key.GetValue(null).ToString().ToLower().Trim(new[] { '"' });
}
if (!browser.EndsWith("exe"))
{
//get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe", StringComparison.InvariantCultureIgnoreCase) + 4);
}
}
finally
{
if (key != null)
{
key.Close();
}
}
Process proc = Process.Start(browser, "http://www.google.nl");
if (proc != null)
{
proc.Kill();
}
我正在尝试这个过程,有没有办法指定运行默认浏览器? –
没有线索,也许你必须在注册表中挖掘...请参阅http://uk.answers.yahoo.com/question/index?qid=20080105121336AAnheHM – Davio
如果我在同一个方法中运行它,它似乎工作, Tab永远不会打开(我认为它快速打开和关闭)但是,如果我将kill转移到另一个方法,它表示无法处理请求,因为进程(6004)已退出。 –
嗯,不将的Process.Start命令给你某种手柄?它是Process类型的,你可以用它做点什么!我不认为你可以关闭标签虽然...也许如果每个标签都有自己的过程? – Davio
我试过Process ChromeTab = Process.Start(...)然后ChromeTab.Close()我得到一个异常对象引用未设置为对象的实例。 –