Browser öffnen.
-
Wie kann ich von meiner Anwendung aus den Standartbrowser des aktuellem Systems starten und ihm sagen, dass er zu einer bestimmten URL gehen soll?
-
System.Diagnostics.Process.Start("http://www.c-plusplus.net");
-
Danke erstma.
Und wie bekomme ich jetzt noch hin, dass ein neues Browserfenster geöffnet wird und nicht das grade offene genommen wird?
System.Diagnostics.Process.Start("IEXPLORE.EXE"); System.Threading.Thread.Sleep(2000); System.Diagnostics.Process.Start("http://www.c-plusplus.net");
So würde es zwar funktionieren, allerdings muss ich dafür den Standartbrowser wissen (bzw. mir aus der Registry auslesen), und wegen dem Thread.Sleep() dauert es zu dem noch recht lange.
Hast du vielleicht noch ne bessere Idee?
-
die Seite kannst du ja als Parameter direkt in die Process-Klasse eintragen!
Um das Auslesen des Standardbrowsers kommst du glaub ich nicht herum
-
Ok, ich habs jetzt wie folgt gelöst. Danke, für eure Tips.
string browser = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE") .OpenSubKey("Classes").OpenSubKey("HTTP").OpenSubKey("shell") .OpenSubKey("open").OpenSubKey("command").GetValue(null).ToString(); browser = System.Text.RegularExpressions.Regex.Match(browser, "\".+?\"").Value; System.Diagnostics.Process.Start(browser, "http://www.c-plusplus.net");
Wenn noch jemand Verbesserungsvorschläge hat, nur zu.
-
Zwei Sachen noch...
Der reguläre Ausdruck den den ich da verwendet habe ist nicht grade sehr portabel. Aber ich hab ihn schon optimiert (siehe unten).
Der Firefoxbrowser öffnet die Seite trotzdem in einem schon offenen Fenster, wenn vorhanden. Weiß vielleicht jemand wie man auch den Firefox dazu bekommt nen neues Fenster zu öffnen?
string browser = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE") .OpenSubKey("Classes").OpenSubKey("HTTP").OpenSubKey("shell") .OpenSubKey("open").OpenSubKey("command").GetValue(null).ToString(); browser = System.Text.RegularExpressions.Regex.Match( browser, @"(""{0,1})((.+?\\)+.+\.exe)\1.+", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Groups[2].Value; System.Diagnostics.Process.Start(browser, "http://www.c-plusplus.net");