78 votes

Ouvrir une URL à partir de Windows Forms

Je suis en train de fournir un lien vers mon site internet de l'entreprise à partir d'un Formulaire Windows. Je veux être bien comportés et de le lancer à l'aide de l'utilisateur navigateur préféré.

Quel est le meilleur moyen d'ouvrir une URL par l'utilisateur dans le navigateur par défaut à partir d'une application Windows Forms?

137voto

Blorgbeard Points 38991

Cet article va vous guider à travers elle.

Réponse courte:

ProcessStartInfo sInfo = new ProcessStartInfo("http://mysite.com/");  
Process.Start(sInfo);

35voto

Aaron Wagner Points 4556
using System.Diagnostics;

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

Cette approche a bien fonctionné pour moi, mais j'ai peut être rater quelque chose d'important.

12voto

Rogala Points 81

Ici, c'est le meilleur des deux mondes:

Dim sInfo As New ProcessStartInfo("http://www.mysite.com")

Try
     Process.Start(sInfo)
Catch ex As Exception
     Process.Start("iexplore.exe", sInfo.FileName)
End Try

J'ai trouvé que la réponse fournie par Blorgbeard échouent lorsqu'une application de bureau est exécuté sur un appareil Windows 8. De Camillo point, vous devriez essayer d'ouvrir cet avec l'utilisateur par défaut du navigateur d'application, mais si le browswer application n'est pas attribué, une exception non gérée s'est levée.

Je vous poste ce que la réponse puisqu'il gère l'exception, tandis que toujours essayer d'ouvrir le lien dans le navigateur par défaut.

6voto

Sumrak Points 1334

J'aime l'approche décrite ici. Il prend en compte la possibilité d'exceptions et de retards lors du lancement du navigateur.

Pour les meilleures pratiques assurez-vous de ne pas simplement ignorer l'exception, de l'attraper et d'effectuer l'action appropriée (par exemple avertir l'utilisateur que l'ouverture du navigateur pour naviguer sur lui à l'url a échoué).

-3voto

ammrin Points 9

L'approche ci-dessus est parfait, je tiens à recommander cette approche à l'endroit où vous pouvez passer vos paramètres.

Process mypr;
mypr = Process.Start("iexplore.exe", "pass the name of website");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X