Come aprire il file html con ancora (#) in C # con il browser predefinito

Sto cercando di aprire un file di aiuto contestuale in c #.

Quando non specifichi l’ancora, funziona perfettamente.

Process.Start("C:/Help/Help.htm") 

Ma quando specifichi l’ancora, non si apre

 Process.Start("C:/Help/Help.htm#_Toc342057538") 

Internamente cambia '#' in '%23' e il percorso diventa "c:\Help.htm%23_Toc342057538" che il browser non è in grado di riconoscere.

Il browser sta aprendo con successo il percorso "c:\Help.htm#_Toc342057538"

Come interrompere questa conversione automatica da Process.Start . Lo stesso comportamento è osservato, se io do l’etichetta di ancoraggio come un altro argomento, o uso la class Uri .

EDIT Lo stesso comportamento si osserva quando inserisco la stringa in Window Run. Seguendo il comando converti anche # in %23 , che il browser non può riconoscere.

 chrome c:/Help.htm#_Toc342057538 

Sul mio sistema Windows 7, entrambi i seguenti aperti C: \ Help \ Help.htm in Internet Explorer e scorrere fino all’ancoraggio _Toc342057538:

 Process.Start("iexplore", "file://C:/Help/Help.htm#_Toc342057538"); Process.Start("iexplore", @"C:\Help\Help.htm#_Toc342057538"); 

Per Firefox e Chrome, solo il protocollo file sembra funzionare:

 Process.Start("firefox", "file://C:/Help/Help.htm#_Toc342057538"); Process.Start("chrome", "file://C:/Help/Help.htm#_Toc342057538"); 

Prova questo. L’ho fatto da solo e ho lavorato in internet explorer

 string s = "file:///D:/tmp/test.html%23test"; s = uri.UnescapeDataString(s); Process.Start(s); 

Per favore fatemi sapere se funziona o no per voi.