2008-09-12 23 views
68

Próbuję podać link do strony mojej firmy z formularza Windows. Chcę się dobrze zachowywać i uruchamiać za pomocą preferowanej przeglądarki użytkownika.Otwórz adres URL z Windows Forms

Jaki jest najlepszy sposób otwarcia adresu URL w domyślnej przeglądarce użytkownika z aplikacji Windows Forms?

+1

Być może dodadzą interfejs API do standardowej biblioteki. Słyszałem, że ta strona internetowa będzie duża. –

Odpowiedz

115

Ten article przeprowadzi Cię przez to.

Krótka odpowiedź:

ProcessStartInfo sInfo = new ProcessStartInfo("http://mysite.com/"); 
Process.Start(sInfo); 
+0

Precyzyjne i dokładne. +1 – iMatoria

+2

Dlaczego otrzymałem wyjątek Win32Exception: "Nie znaleziono aplikacji", gdy próbuję tego? Jestem na Win7 64bit. Dzięki – TomShreds

+2

@Tom: Wygląda na to, że domyślna przeglądarka jest ustawiona nieprawidłowo. –

33
using System.Diagnostics; 

Process.Start("http://www.google.com/"); 

To podejście zadziałało u mnie, ale mógłbym przegapić coś ważnego.

6

Lubię podejście opisane here. Uwzględnia możliwe wyjątki i opóźnienia podczas uruchamiania przeglądarki.

Aby uzyskać najlepszą praktykę, upewnij się, że nie zignorowałeś wyjątku, ale złap go i wykonaj odpowiednie działanie (na przykład powiadom użytkownika, że ​​nie udało się otworzyć przeglądarki, aby przejść do adresu URL).

+2

To prawda, i że zawsze należy wziąć pod uwagę. Ich metoda po prostu przełknięcia wyjątków sprawia, że ​​wzdragam się. Być może będziesz w stanie przedstawić argumenty na ten temat w tym konkretnym przypadku, ale nadal nie będę miał pustego bloku "catch". Zbyt łatwo jest całkowicie zamaskować problem w ten sposób. –

+0

masz rację. Nie myślałem o ewentualnym wyjątku (i powinienem) dopóki nie zobaczyłem postu. – Sumrak

-3

Powyższe podejście jest idealne, chciałbym polecić to podejście, w którym można przekazywać swoje parametry.

Process mypr; 
mypr = Process.Start("iexplore.exe", "pass the name of website"); 
+1

To powinien być komentarz, a nie odpowiedź. –

+0

Proszę użyć odpowiedniego stylu pisania i powstrzymać się od pisania w "języku czatu" tutaj ... – Spontifixus

+1

Zastanawiam się, dlaczego uważasz, że to podejście jest lepsze? Wydaje mi się, że nie odpowiada to pierwotnie zamierzonemu, które było otwarte w preferowanej przeglądarce użytkownika. Ta metoda dostarcza plik wykonywalny przeglądarki, który zawsze otwiera się w IE, nawet jeśli użytkownik określił Chrome lub Firefox jako preferowaną przeglądarkę. –

6

Oto najlepsze z obu światów:

Dim sInfo As New ProcessStartInfo("http://www.mysite.com") 

Try 
    Process.Start(sInfo) 
Catch ex As Exception 
    Process.Start("iexplore.exe", sInfo.FileName) 
End Try 

Uważam, że odpowiedź udzielana przez Blorgbeard zawiedzie, gdy aplikacja jest uruchamiana na urządzeniu z systemem Windows 8. Z punktu widzenia Camillo, powinieneś spróbować otworzyć to za pomocą domyślnej aplikacji przeglądarki użytkownika, ale jeśli aplikacja browswer nie zostanie przypisana, zgłoszony zostanie nieobsługiwany wyjątek.

Zamieszczam to jako odpowiedź, ponieważ obsługuje wyjątek, wciąż próbując otworzyć łącze w domyślnej przeglądarce.

Powiązane problemy