12

I am using System.Diagnostics.Process.Start from a desktop application to start the default browser to visit a link, as below. This is using C# with .NET 4.0 on Windows 8 Pro RTM.

System.Diagnostics.Process.Start(new ProcessStartInfo
{
    FileName = @"http://www.google.com",
    UseShellExecute = true
});

This works fine under Windows 7, but under Windows 8 I am getting an exception that can be reproduced in LINQPad. The exceptions are:

UseShellExecute = true gives Win32Exception: Class not registered. UseShellExecute = false gives Win32Exception: The system cannot find the file specified.

How can open a URL in the default browser?

Sean Kearon
  • 10,987
  • 13
  • 77
  • 93

2 Answers2

21

For WinRT apps only, it's simply

Launcher.LaunchUriAsync(new Uri("http://www.google.com"));

Take a look here.

theyetiman
  • 8,514
  • 2
  • 32
  • 41
Cybermaxs
  • 24,378
  • 8
  • 83
  • 112
5

It seems that you need to specify the process name under Win8. The answer below comes from Armin's answer here.

var startInfo = new ProcessStartInfo("explorer.exe", @"http://www.google.com");
Process.Start(startInfo);
Community
  • 1
  • 1
Sean Kearon
  • 10,987
  • 13
  • 77
  • 93