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...
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
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne pour moi:
N'oubliez pas UseShellExecute si vous souhaitez utiliser la reconnaissance automatique du type de commande (dans ce cas, http/navigateur).
Edit: ça fonctionne si vous
Win+R
l'url?En effet, le MSDN est d'accord avec l'article base de connaissances. Je suis confus. Cela a pour travailler. Est votre URL vraiment correcte? Navigateur activé par défaut? Le code dans cette réponse, le travail ou est-il le résultat dans le même message? Raymond à la rescousse!
Il donne le même message (qui est en fait le code que j'ai essayé en premier). Je pense que ce doit être un problème d'association de fichier sur ma machine. Je suis à essayer de comprendre comment résoudre cela.
Oui, cela sonne comme une explication plausible. Désolé de ne pas complètement la lecture de la question, d'ailleurs, vous l'avez expliqué que bien. 🙂
Avez-vous pensez à mettre la question sur la LIGUE?
OriginalL'auteur mafu
C'est une grave question que j'ai vu lorsque Firefox est le navigateur web par défaut.
Si nous utilisons Système.De Windows.Les formulaires.De l'aide.ShowHelp(null, "http://microsoft.com"), cette message d'erreur peut être contourné sur Windows. Toutefois, L'Aide.ShowHelp ne fonctionne pas comme prévu, sur Mono/openSUSE.
OriginalL'auteur Lex Li
Essayer
Cela permettra de lancer Internet Explorer et l'URL. Processus.Commencer à ne pas détecter des applications/navigateurs automaticall.y
J'obtiens la même erreur à l'aide de votre méthode.
Je pense que c'est une mauvaise pratique. Ne dépendent pas c'est à dire dans une telle façon grossière si il est facile, la meilleure façon de faire.
Bien le navigateur par défaut emplacement est dans le registre, vous pouvez récupérer la valeur de départ.
HKEY_CLASSES_ROOT \ http \ shell \ open \ command
OriginalL'auteur Russell
Ok, donc c'mystérieusement commencé à travailler correctement sans rien changer. Je ne peux pas l'expliquer. Cependant, dans le même temps, j'ai écrit une autre méthode permettant de trouver et d'exécuter le navigateur par défaut. C'est un peu hacky, mais beaucoup mieux que juste le chargement IE par défaut:
OriginalL'auteur Scott Whitlock