Estou projetando um pequeno aplicativo C # e há um navegador da Web nele. Atualmente, tenho todos os meus padrões no meu computador, digamos que o google chrome é o meu navegador padrão, mas quando clico em um link no meu aplicativo para abrir em uma nova janela, ele abre o Internet Explorer. Existe alguma maneira de abrir esses links no navegador padrão? Ou há algo errado no meu computador?
Meu problema é que eu tenho um navegador da web no aplicativo, digamos que você vá ao google e digite "estouro de pilha", clique com o botão direito do mouse no primeiro link e clique em "Abrir em nova janela", ele abre no IE, e não no Chrome. É algo que codifiquei incorretamente ou há uma configuração incorreta no meu computador
=== EDIT ===
Isso é realmente irritante. Eu já estou ciente de que o navegador é o IE, mas eu já estava funcionando bem antes. Quando cliquei em um link, ele foi aberto no chrome. Eu estava usando o sharp sharp para fazer o aplicativo naquele momento, porque não era possível obter o c # express para iniciar. Fiz uma nova instalação do Windows e, como não estava muito adiantado no meu aplicativo, decidi começar de novo e agora estou tendo esse problema. É por isso que não tenho certeza se é meu computador ou não. Por que o IE iniciaria o navegador inteiro quando um link é clicado, em vez de simplesmente abrir o novo link no navegador padrão?
Respostas:
Você pode escrever
EDIT : O
WebBrowser
controle é uma cópia incorporada do IE.Portanto, todos os links dentro dele serão abertos no IE.
Para alterar esse comportamento, você pode manipular o
Navigating
evento.fonte
Process.Start(e.Url.ToString())
Para quem encontra essa pergunta no núcleo do dotnet. Eu encontrei uma solução aqui
Código:
fonte
open
comando em vez dexdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
ou isso já será verdade no Linux?xdg-command
retorna "xdg-open: comando não encontrado". Então eu testei comopen
comando e funciona.isso deve resolver seu problema
fonte
Você tentou
Process
conforme mencionado aqui: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Você poderia usar
fonte
UseShellExecute
o padrão é true.true
.Process.Start(url)
isso, ele não abre uma nova janela do navegador.Dê uma olhada no controle GeckoFX .
fonte
Tente isso da maneira da velha escola;)
usando: openit ("www.google.com");
fonte
Depois de pesquisar muito, sinto que a maioria das respostas dadas não funcionará com o núcleo do dotnet. 1
System.Diagnostics.Process.Start("http://google.com")
.; - Não funcionará com o núcleo dotnet2. Funcionará, mas bloqueará a nova janela, caso o navegador padrão seja chrome
Abaixo está o mais simples e funcionará em todos os cenários.
fonte
Isso abriu o padrão para mim:
fonte
dotnet core
gera um erro se usarmosProcess.Start(URL)
. O código a seguir funcionarádotnet core
. Você pode adicionar qualquer navegador em vez deChrome
.fonte
Em UWP:
fonte
Abrir dinamicamente
fonte
atualize o registro com a versão atual do explorer
@ "Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION"
fonte