Cela fonctionne pour moi dans Firefox:
var proc = Process.Start("firefox.exe", "http://www.google.nl");
proc.Kill();
Parce que j'ai Firefox mis en mode une fenêtre, il ouvre un onglet. Cet onglet est supprimé (mais pas la fenêtre principale) lorsque j'émets la méthode Kill(). La méthode Close() n'a pas fonctionné pour moi dans ce cas.
Vous pouvez essayer la même chose avec Chrome. Vous devez fournir l'URL en tant qu'argument à un vrai programme au lieu de l'URL elle-même, sinon le proc est nul.
Voici un exemple complet en utilisant le navigateur par défaut:
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();
}
Umm, ne pas la commande Process.Start vous donner une sorte de poignée? C'est de type Processus, vous pouvez probablement faire quelque chose avec! Je ne pense pas que vous pouvez fermer juste l'onglet si ... peut-être si chaque onglet a son propre processus? – Davio
J'ai essayé Process ChromeTab = Process.Start (...) Puis ChromeTab.Close() Et j'ai reçu une exception Référence d'objet non définie sur une instance d'un objet. –