Je conçois une petite application C # et il y a un navigateur Web dedans. J'ai actuellement tous mes paramètres par défaut sur mon ordinateur, disons que Google Chrome est mon navigateur par défaut, mais quand je clique sur un lien dans mon application pour l'ouvrir dans une nouvelle fenêtre, il ouvre Internet Explorer. Existe-t-il un moyen d'ouvrir ces liens dans le navigateur par défaut? Ou y a-t-il un problème sur mon ordinateur?
Mon problème est que j'ai un navigateur Web dans l'application, alors dites que vous allez sur Google et tapez "débordement de pile" et faites un clic droit sur le premier lien et cliquez sur "Ouvrir dans une nouvelle fenêtre", il s'ouvre dans IE au lieu de Chrome. Est-ce quelque chose que j'ai mal codé ou y a-t-il un paramètre incorrect sur mon ordinateur
=== EDIT ===
C'est vraiment ennuyeux. Je sais déjà que le navigateur est IE, mais je le faisais bien avant. Lorsque j'ai cliqué sur un lien, il s'est ouvert en chrome. J'utilisais Sharp Develop pour faire l'application à ce moment-là car je ne pouvais pas faire démarrer c # express. J'ai fait une nouvelle installation de Windows et comme je n'étais pas trop loin dans mon application, j'ai décidé de recommencer, et maintenant j'ai ce problème. C'est pourquoi je ne sais pas si c'est mon ordinateur ou non. Pourquoi IE démarrerait-il tout le navigateur lorsqu'un lien est cliqué plutôt que d'ouvrir simplement le nouveau lien dans le navigateur par défaut?
Réponses:
Vous pouvez simplement écrire
EDIT : Le
WebBrowser
contrôle est une copie intégrée d'IE.Par conséquent, tous les liens à l'intérieur de celui-ci s'ouvriront dans IE.
Pour modifier ce comportement, vous pouvez gérer l'
Navigating
événement.la source
Process.Start(e.Url.ToString())
Pour ceux qui trouvent cette question dans le noyau dotnet. J'ai trouvé une solution ici
Code:
la source
open
commande au lieu dexdg-open
RuntimeInformation.IsOSPlatform(OSPlatform.OSX)
ou sera-ce déjà vrai sous Linux?xdg-command
renvoie "xdg-open: commande introuvable". Ensuite, j'ai testé avecopen
commande et fonctionne.Cela devrait résoudre votre problème
la source
Avez-vous essayé
Process
comme mentionné ici: http://msdn.microsoft.com/de-de/library/system.diagnostics.process.aspx ?Vous pourriez utiliser
la source
UseShellExecute
par défaut à true.true
.Process.Start(url)
, cela n'ouvrira pas une nouvelle fenêtre de navigateur.Jetez un œil au contrôle GeckoFX .
la source
Essayez ceci, façon old school;)
en utilisant: openit ("www.google.com");
la source
Après de nombreuses recherches, je pense que la plupart des réponses données ne fonctionneront pas avec le noyau dotnet. 1
System.Diagnostics.Process.Start("http://google.com")
.; - Ne fonctionnera pas avec le noyau dotnet2. Cela fonctionnera mais il bloquera l'ouverture de la nouvelle fenêtre au cas où le navigateur par défaut est chrome
Ci-dessous est le plus simple et fonctionnera dans tous les scénarios.
la source
Cela a ouvert la valeur par défaut pour moi:
la source
dotnet core
jette une erreur si nous utilisonsProcess.Start(URL)
. Le code suivant fonctionnera dansdotnet core
. Vous pouvez ajouter n'importe quel navigateur au lieu deChrome
.la source
Dans UWP:
la source
Ouvrir dynamiquement
la source
mettre à jour le registre avec la version actuelle de l'explorateur
@ "Software \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION"
la source