Process.Start(url) with anchor in the url

1.5k Views Asked by At

I am trying to use Process.Start to launch a local html file in the default browser.

An example url is as follows:

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

Problem is, the "#SectionA/Topic1.htm" bit gets stripped off for some reason, so that this information isn't passed to the browser. It does however work fine for a non-local url.

Does anyone know how I can get this to work or is it some sort of preventative security issue?

thanks

2

There are 2 best solutions below

1
On

Use Process.Start on iexplore.exe, so that you can specify the URL specifically as its argument:

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

Launching a URL with an anchor in a browser does not work if you let the OS determine the default browser. The only way to make this work is to specify the browser's executable as binarycoder wrote for IE. It works the same way for Firefox.

The best solution is obviously to determine the path to the default browser from the registry and then specifically call that executable.