2010-03-08 3 views
5

J'essaie d'utiliser Process.Start pour lancer un fichier html local dans le navigateur par défaut.Process.Start (url) avec l'ancre dans l'URL

Un exemple d'URL est la suivante:

"file:///C:/Documentation/HelpContent/default_CSH.htm#SectionA/Topic1.htm" 

Le problème est, le « # SectionA/Topic1.htm » peu s'enlevèrent une raison quelconque, de sorte que ces informations ne sont pas transmises au navigateur. Il fonctionne cependant bien pour une URL non locale.

Est-ce que quelqu'un sait comment je peux obtenir ce travail ou est-ce une sorte de problème de sécurité préventive?

grâce

+0

L'adresse fonctionne si vous le collez dans la barre d'adresse du navigateur? Essayez d'enlever le caractère/de l'étiquette de l'ancre ... – munissor

+0

Oui, je suis d'accord. Il y a deux noms de fichiers dans cette URL, ce qui est un peu étrange. – jgallant

+0

Malheureusement le/est requis ici - l'url est comme ça parce qu'il lance Topic1.htm dans un autre cadre (c'est la sortie WebHelp de MadCap Flare) –

Répondre

4

Utilisez Process.Start sur iexplore.exe, de sorte que vous pouvez spécifier l'URL spécifique comme argument:

System.Diagnostics.Process.Start("iexplore.exe", @"file:///c:/dir/file.html#anchor"); 
+0

Merci - J'ai utilisé cette méthode pour le moment. Vraiment, je dois être en mesure de l'ouvrir dans le navigateur par défaut plutôt que de restreindre à IE. –

2

Lancer une URL avec un point d'ancrage dans un navigateur ne fonctionne pas si vous laissez le système d'exploitation déterminez le navigateur par défaut. La seule façon de faire ce travail est de spécifier l'exécutable du navigateur comme binarycoder a écrit pour IE. Cela fonctionne de la même manière pour Firefox.

La meilleure solution est évidemment de déterminer le chemin d'accès au navigateur par défaut à partir du registre, puis d'appeler spécifiquement cet exécutable.

+0

[ici] (http://fr.code-bude.net/2013/04/28/how-to-retrieve-default-browsers-path-in-c/) est un bon article qui vous montre comment obtenir le chemin du navigateur par défaut à partir du registre – Chris

Questions connexes