2010-12-15 5 views
2

J'essaie d'ouvrir quelque chose en dire viaComment ouvrir dans la fenêtre actuelle de savoir: - C#

System.Diagnostics.Process.Start("iexplore.exe", uniquePartOfUrl); 

Toutefois, cela ne tient pas compte du fait d'une fenêtre est déjà ouverte, si elle est alors je Je veux juste l'utiliser. Comment cela pourrait-il être fait?

+0

Pourquoi avez-vous besoin d'une poignée de fenêtre? L'API d'IE est COM, si vous voulez contrôler la nouvelle fenêtre/l'onglet, vous devriez demander IWebBrowser2 (bien que vous puissiez obtenir la poignée de la fenêtre/onglet depuis IWebBrowser2) –

Répondre

0

Sur CodeProject, il existe un projet de « Capturing the Running IE Instances in C# »

Il vous donne une façon de le faire. En utilisant l'API WIN32, vous pouvez énumérer les fenêtres ouvertes et les filtrer pour obtenir les instances d'IE en cours d'exécution.

Cela peut vous être utile.

0

Vous pouvez essayer quelque chose comme ceci:

var p = new System.Diagnostics.Process(); 
var s = new System.Diagnostics.ProcessStartInfo(uniquePartOfUrl); 
s.UseShellExecute = true; 
s.WindowStyle = ProcessWindowStyle.Normal; 
p.StartInfo = s; 
p.Start(); 

Je n'ai pas un compilateur à portée de main pour le tester en ce moment, mais l'idée est qu'il devrait simplement dire le système d'exploitation à « ouvrir cette URL » et Laissez le système d'exploitation décider comment, ce qui peut utiliser la fenêtre existante en fonction de l'application. Ça vaut le coup.

4

OMI, la meilleure façon d'ouvrir une page Web est d'utiliser la syntaxe suivante:

Process.Start("http://www.mysite.com"); 

De cette façon, le système d'exploitation ouvrir dans l'utilisateur navigateur par défaut et utiliser la fonctionnalité onglet navigateurs si elle a cette capacité. Rien ne m'énerve plus (ok, peut-être que certaines choses le font) que les programmes qui me forcent à utiliser un navigateur spécifique sans raison valable, quand j'ai déjà choisi quel navigateur je veux déjà utiliser. Honorer la décision des utilisateurs est une bonne chose.

0

Pour réutiliser une fenêtre existante de IE, vous pouvez approcher de 2 façons différentes

  1. Trouver l'instance actuelle de IE et ouvrir ensuite à l'aide de cette instance. Ceci est couvert par la réponse donnée par @LaGrandMere

  2. Définissez IE en utilisant les paramètres intégrés pour le réutiliser. Pour utiliser cette méthode, vous pouvez suivre les instructions données au this Microsoft support article.

Questions connexes