Comment puis-je ouvrir un navigateur web à partir d'un .NET Programme? Processus.Start() ne fonctionne pas?

J'ai une URL et je veux le lancer dans le navigateur par défaut. J'ai essayé deux méthodes:

Process.Start("http://stackoverflow.com");

... et celui détaillé dans ce autre question utiliser ShellExecute.

Dans les deux cas, j'obtiens le message d'erreur: Windows ne trouve pas 'http://stackoverflow.com'. Assurez-vous que vous avez entré le nom correctement et essayez à nouveau.

Il ne faut pas essayer de l'ouvrir comme un fichier bien que... ce que je comprends, il doit le reconnaître comme une URL et de l'ouvrir dans le navigateur par défaut. Ce qui me manque?

Par la route: OS = Vista, et .NET = 3.5

MODIFIER:

Selon cet article base de connaissances microsoft, depuis le Processus.Commencer définit la UseShellExecute par défaut, il doit lancer le navigateur par défaut.

MODIFIER:

Voilà ce travail:

System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\IExplore.exe", "http://stackoverflow.com");

Malheureusement, ça n'a vraiment pas de lancer le navigateur par défaut, et il ne fonctionnera pas non plus si IE n'est pas installé dans la "normale". Je ne suis pas sûr de quoi faire ici.

Plus d'informations:

OK, donc l'erreur que j'obtiens est le numéro de l'erreur -2147467259. Recherche Google pour cela, il semble que ce n'est pas très descriptif. Il peut être une association de fichier d'erreur ou quelque chose.

L'intrigue s'épaissit:

Donc j'ai vérifié la clé de registre qui est censé avoir mon association de fichier dans pour http:

KEY_CLASSES_ROOT\http\shell\open\command\default

Voici la valeur:

"C:\Program Files\Mozilla Firefox\firefox.exe" -requestPending -osint -url "%1"

Qui fait sens. J'ai fait copié cette chaîne dans une invite de commande et remplacé l' %1 avec http://stackoverflow.com et il a travaillé et a ouvert firefox. Je ne vois pas pourquoi le Processus.Début n'est pas d'associer l'URL avec cette commande...

Je me demande si cela fonctionne mieux pour les Url, y compris le nom de fichier et l'extension? Essayez-le avec "msdn.microsoft.com/en-us/default.aspx".
Par le chemin, ne pas coder en dur "Program Files", parce qu'il est différent si la version de windows n'est pas en anglais.
C'est ce que j'ai dit, n'est-ce pas?
En vertu de ce que les informations d'identification vous exécutez?
McGee: C'est Vista Home Premium et je suis et administrateur, mais l'application n'est pas en exécution sous un faux privilèges.

OriginalL'auteur Scott Whitlock | 2010-05-09