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クラスを使用すると、同じ動作が観察されます。

EDIT Window Runに文字列を入力すると、同じ動作が観察されます。次のコマンドも、ブラウザが認識できない に変換#します。%23

chrome c:/Help.htm#_Toc342057538
4

2 に答える 2

3

私のWindows7システムでは、次の両方が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

これを試してみてください。私は自分でそれを行い、インターネットエクスプローラーで作業しました

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

      Process.Start(s);

それがあなたのために働いているかどうか私に知らせてください。

于 2012-12-13T04:54:01.653 に答える