2012-09-19 11 views
12

Używam aplikacji System.Diagnostics.Process.Start z aplikacji komputerowej, aby uruchomić domyślną przeglądarkę, aby przejść do linku, jak poniżej. To jest przy użyciu C# z .NET 4.0 na Windows 8 Pro RTM.Otwieranie adresu URL w domyślnej przeglądarce w aplikacji komputerowej z systemem Windows 8

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

To działa prawidłowo w systemie Windows 7, ale w Windows 8 otrzymuję wyjątek, który może być powielana w LINQPad. Wyjątkami są:

UseShellExecute = true daje Win32Exception: Class not registered. UseShellExecute = false daje Win32Exception: System nie może znaleźć określonego pliku.

Jak otworzyć adres URL w domyślnej przeglądarce?

+1

Odpowiedział tak: http://stackoverflow.com/a/12248929/2608 –

Odpowiedz

21

Dla WinRT aplikacje tylko, to po prostu

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

Spójrz here.

+0

Czy to możliwe, aby uzyskać dostęp Windows.System.Launcher z .NET 4.0 aplikacji? –

+0

Czy widzisz link? Istnieje przykład w języku C#. – Cybermaxs

+1

Tak, ale dotyczy to rozwoju WinRT. Używam .NET 4.0 tutaj w standardowej aplikacji komputerowej, a nie aplikacji Windows Store. –

5

Wygląda na to, że musisz podać nazwę procesu w Win8. Poniższa odpowiedź pochodzi z Armin's odpowiedź here.

var startInfo = new ProcessStartInfo("explorer.exe", @"http://www.google.com"); 
Process.Start(startInfo); 
+0

nie działa w Windows 8. Tylko mniej niż Windows 7. –

+0

Działa dobrze dla mnie pod W8 +. –

+0

Gdy adres URL zawiera znaki specjalne, takie jak '=', wówczas musi być cytowany: 'Process.Start (" explorer.exe ", $" \ "{url} \" ");' – xmedeko

Powiązane problemy