Projektuję małą aplikację w języku C # i jest w niej przeglądarka internetowa. Obecnie mam wszystkie ustawienia domyślne na moim komputerze, mówiąc, że Google Chrome jest moją domyślną przeglądarką, ale kiedy kliknę link w mojej aplikacji, aby otworzyć w nowym oknie, otworzy się przeglądarka internetowa. Czy istnieje sposób, aby zamiast tego te linki były otwarte w domyślnej przeglądarce? Czy coś jest nie tak na moim komputerze?
Mój problem polega na tym, że mam przeglądarkę internetową w aplikacji, więc powiedz, że idziesz do Google i wpisujesz „przepełnienie stosu” i kliknij prawym przyciskiem myszy pierwszy link i kliknij „Otwórz w nowym oknie”, otwiera się w IE zamiast Chrome. Czy to jest coś, co kodowałem niepoprawnie, czy jest to ustawienie niepoprawne na moim komputerze
=== EDYCJA ===
To jest naprawdę denerwujące. Wiem już, że przeglądarka to IE, ale wcześniej działało dobrze. Kiedy kliknąłem link, otworzył się w chromie. W tym czasie używałem programu Sharp do tworzenia aplikacji, ponieważ nie mogłem uruchomić c # express do uruchomienia. Zrobiłem nową instalację systemu Windows i ponieważ nie byłem zbyt daleko w mojej aplikacji, postanowiłem zacząć od nowa, a teraz mam ten problem. Dlatego nie jestem pewien, czy to mój komputer, czy nie. Dlaczego IE miałby uruchamiać całą przeglądarkę po kliknięciu linku zamiast po prostu otwierać nowy link w domyślnej przeglądarce?
Odpowiedzi:
Możesz po prostu pisać
EDYCJA :
WebBrowser
formant jest osadzoną kopią IE.Dlatego wszelkie zawarte w nim linki będą otwierane w IE.
Aby zmienić to zachowanie, możesz obsłużyć
Navigating
zdarzenie.źródło
Process.Start(e.Url.ToString())
Dla tych, którzy znajdą to pytanie w rdzeniu dotnet. Tutaj znalazłem rozwiązanie
Kod:
źródło
open
poleceniem zamiastxdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
czy będzie to prawdą w Linuksie?xdg-command
zwraca „xdg-open: polecenie nie znaleziono”. Następnie przetestowałem zopen
poleceniem i działa.to powinno rozwiązać twój problem
źródło
Czy próbowałeś,
Process
jak wspomniano tutaj: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Możesz użyć
źródło
UseShellExecute
domyślnie ma wartość true.true
.Process.Start(url)
, nie otworzy się nowe okno przeglądarki.Spójrz na sterowanie GeckoFX .
źródło
Spróbuj tego, oldschoolowy sposób;)
using: openit („www.google.com”);
źródło
Po wielu badaniach uważam, że większość podanych odpowiedzi nie będzie działać z rdzeniem dotnet. 1
System.Diagnostics.Process.Start("http://google.com")
.; - Nie działa z rdzeniem dotnet2. Będzie działać, ale zablokuje otwieranie nowego okna w przypadku, gdy domyślną przeglądarką jest chrome
Poniżej jest najprostszy i będzie działał we wszystkich scenariuszach.
źródło
Otworzyło się dla mnie ustawienie domyślne:
źródło
dotnet core
zgłasza błąd, jeśli używamyProcess.Start(URL)
. Poniższy kod będzie działał wdotnet core
. Możesz dodać dowolną przeglądarkę zamiastChrome
.źródło
W UWP:
źródło
Otwórz dynamicznie
źródło
zaktualizuj rejestr z bieżącą wersją explorer
@ „Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION”
źródło