Wie öffne ich ein web-browser .NET-Programm? Prozess.Start() nicht funktioniert?
Ich habe eine URL und ich möchte um es zu starten in der Standard-browser. Ich habe versucht zwei Methoden:
Process.Start("http://stackoverflow.com");
... und das eine detaillierte in diesem andere Frage mit ShellExecute.
In beiden Fällen erhalte ich die Fehlermeldung: Windows kann nicht finden 'http://stackoverflow.com'. Stellen Sie sicher, dass Sie den Namen korrekt eingegeben haben und versuchen Sie es dann erneut.
Sollte es nicht versuchen, Sie zu öffnen, als Datei, aber... von dem, was ich verstehe, sollte es erkennen, es als eine URL und öffnen Sie Sie in Ihrem Standard-browser. Was bin ich?
Übrigens: OS = Vista, und .NET = 3.5
BEARBEITEN:
Laut dieser MS-KB-Artikel, da der Prozess.Start legt den UseShellExecute standardmäßig, sollte Sie starten den Standard-browser.
BEARBEITEN:
Hier ist was funktioniert:
System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\IExplore.exe", "http://stackoverflow.com");
Leider wirklich nicht, starten Sie den Standard-browser, und es auch nicht funktioniert, wenn IE nicht installiert ist, in der "normalen" Platz. Ich bin mir nicht sicher, was hier zu tun ist.
Mehr Informationen:
OK, also die Fehler, die ich bin immer die Fehlernummer -2147467259. Sucht bei Google nach diesem, es scheint, dass es nicht sehr aussagekräftig. Es könnte ein Datei-Zuordnung-Fehler oder so etwas.
Der plot verdickt:
Also ich habe in der registry-key, der angeblich meine Akte association for http:
KEY_CLASSES_ROOT\http\shell\open\command\default
Hier ist der Wert:
"C:\Program Files\Mozilla Firefox\firefox.exe" -requestPending -osint -url "%1"
Sinn macht. Ich tatsächlich kopiert diesen string in eine Eingabeaufforderung ein und ersetzt das %1 mit http://stackoverflow.com und es funktionierte und öffnete firefox. Ich weiß nur nicht, warum die Prozess.Starten ist nicht das verknüpfen der URL mit diesem Befehl...
Durch die Art und Weise, nicht hartcodieren "Program Files", weil es anders ist, wenn die windows-version ist nicht in Deutsch.
Das ist, was ich sagte, ist es nicht?
Unter welchen Anmeldeinformationen sind Sie?
McGee: Es ist Vista Home Premium, und ich bin und admin, aber die app nicht ausführen unter angehobenen rechten.
InformationsquelleAutor Scott Whitlock | 2010-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese funktioniert bei mir:
Vergessen Sie nicht UseShellExecute wenn Sie möchten, verwenden Sie die automatische Anerkennung der Befehl (in diesem Fall http/browser).
Edit: funktioniert es, wenn Sie
Win+R
die url?Ja, die MSDN stimmt mit dem KB-Artikel als gut. Ich bin verwirrt. Dies hat zu arbeiten. Ist Ihre URL wirklich richtig? Standard-browser einstellen? Funktioniert der code in dieser Antwort zu arbeiten oder ist es aufgrund der gleichen Meldung? Raymond ist die Rettung!
Es gibt die gleiche Meldung (das ist eigentlich der code, den ich zuerst versucht). Ich denke es muss sich um eine Datei Verein problem auf meinem Rechner. Ich versuche, herauszufinden, wie Sie zu beheben sind.
Ja, das klingt wie eine plausible Erklärung. Sorry für nicht richtig Lesen, die Frage auf den ersten, btw, Sie haben erklärt, dass. 🙂
Haben Sie denken Sie darum, die Frage bis auf SU?
InformationsquelleAutor mafu
Dies ist ein ernstes Problem, das ich sah, als Firefox ist der Standard-web-browser.
Wenn wir mit System.Windows.Formen.Hilfe.ShowHelp(null, "http://microsoft.com"), wie Fehlermeldung umgangen werden kann unter Windows. Jedoch Helfen.ShowHelp funktioniert nicht, wie erwartet, auf Mono/openSUSE.
InformationsquelleAutor Lex Li
Versuchen
Damit starten Sie Internet Explorer und der URL. Prozess.Start nicht erkannt-Anwendungen/Browser automatisch.y
Ich habe den gleichen Fehler mit Ihrer Methode.
Ich denke, das ist eine schlechte Praxis. Nicht hängt davon ab, DH in solch einer plumpen Art und Weise, wenn es auch einfach besser Weg.
Auch die Standard-browser-Speicherort in der Registrierung können Sie abrufen, den Prozess Wert zu starten.
HKEY_CLASSES_ROOT \ http \ shell \ open \ command
InformationsquelleAutor Russell
Ok, also ist es auf mysteriöse Weise begann die Arbeit richtig, ohne etwas zu ändern. Ich kann es nicht erklären. Aber in der Zwischenzeit schrieb ich eine andere Methode zu finden und die Ausführung der Standard-browser. Es ist ein bisschen hacky, aber viel besser als nur be-IE standardmäßig:
InformationsquelleAutor Scott Whitlock