为了从.NET应用程序打开一个URL,许多网站( 包括在计算器上 )举这个例子:
Process.Start("http://www.google.com/");
在Windows 8,这个工作如果Internet Explorer是默认的浏览器。 但是,如果谷歌浏览器是默认的,它失败:
Unhandled Exception: System.ComponentModel.Win32Exception: Class not registered
这是否表明,这种方法不再是打开的URL在Windows上的正确方法? 什么选择存在吗? 它是更安全,只是直接启动Internet Explorer?
您可以尝试到指定进程文件名“EXPLORER.EXE”明确,如建议在以下主题:
http://social.msdn.microsoft.com/Forums/nl-BE/toolsforwinapps/thread/e051a102-469e-4ede-882c-c2c89377652a
var startInfo = new ProcessStartInfo("explorer.exe", url);
Process.Start(startInfo);
阿明的回答就是我结束了使用,它的运作良好。
我只想补充一点,我只得到了“类未注册”的例外,当我开始从与提升的权限运行一个程序的过程。 这似乎是与Windows 8的新特性。
我试过很多的解决方案,但正如我在UI项目(WPF或WinForm的)是我结束了使用嵌入式浏览器的控制。 呼叫导航,设置URL,然后定位到“_blank”启动外部浏览器窗口。
_webBrowser.Navigate(uri, "_blank");
希望这可以帮助。 DC
使用启动对象打开的URL。
例:
await Launcher.LaunchUriAsync(new Uri("www.google.com"));
唯一可靠的解决方案,我发现这个问题说明如下: http://www.seirer.net/blog/2014/6/10/solved-how-to-open-a-url-in-the-default -browser功能于CSHARP
基本上,你需要寻找通过Windows注册表中找到所选择的默认浏览器是什么,以及直接启动与URL作为参数的过程。