3

我正在尝试在 c# 中打开上下文帮助文件。

当我不指定锚时,它可以完美运行。

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

但是当我指定锚点时,它不会打开

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

在内部它更改'#''%23'并且路径成为"c:\Help.htm%23_Toc342057538"浏览器无法识别的。

浏览器打开路径成功"c:\Help.htm#_Toc342057538"

如何通过Process.Start停止这种自动转换。如果我将锚标签作为另一个参数或使用Uri类,则会观察到相同的行为。

编辑 当我在 Window Run 中输入字符串时,观察到相同的行为。以下命令也转换#%23浏览器无法识别的。

chrome c:/Help.htm#_Toc342057538
4

2 回答 2

3

在我的 Windows 7 系统上,以下两个都在 Internet Explorer 中打开 C:\Help\Help.htm 并滚动到 _Toc342057538 锚点:

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

对于 Firefox 和 Chrome,file似乎只有协议有效:

Process.Start("firefox", "file://C:/Help/Help.htm#_Toc342057538");
Process.Start("chrome", "file://C:/Help/Help.htm#_Toc342057538");
于 2012-12-13T05:20:49.260 回答
0

试试这个。我只是自己做的,并在 Internet Explorer 中工作

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

      Process.Start(s);

请让我知道它是否适合您。

于 2012-12-13T04:54:01.653 回答