C# 从文件启动带有html的默认浏览器,然后跳转到特定定位点

C# 从文件启动带有html的默认浏览器,然后跳转到特定定位点,c#,C#,我需要从程序根目录打开一个html文件,并让它跳转到指定的锚。我可以用一个简单的方法很好地打开文件 System.Diagnostics.Process.Start(“site.html”) 但一旦我尝试将锚添加到末尾,它就无法找到文件 我能够把锚放在那里,但它仍然可以发射 弦锚 Anchor=“file:///”+Environment.CurrentDirectory.ToString().Replace(“\”,“/”)+ “/site.html#Anchor”; 系统。诊断。过程。启动(

我需要从程序根目录打开一个html文件,并让它跳转到指定的锚。我可以用一个简单的方法很好地打开文件

System.Diagnostics.Process.Start(“site.html”)

但一旦我尝试将锚添加到末尾,它就无法找到文件

我能够把锚放在那里,但它仍然可以发射

弦锚

Anchor=“file:///”+Environment.CurrentDirectory.ToString().Replace(“\”,“/”)+ “/site.html#Anchor”; 系统。诊断。过程。启动(锚定)


然而,一旦浏览器启动,它就会放下锚。有什么建议吗?

您可能需要将整个URL用引号括起来,以保留任何特殊字符(如#)或空格

尝试:

string Anchor = String.Format("\"file:///{0}/site.html#Anchor\"", Environment.CurrentDirectory.ToString().Replace("\\", "/"));
System.Diagnostics.Process.Start(Anchor);
using Microsoft.Win32;  // for registry call.

private string GetDefaultBrowserPath()
{
   string key = @"HTTP\shell\open\command";
   using(RegistryKey registrykey = Registry.ClassesRoot.OpenSubKey(key, false))
   {
      return ((string)registrykey.GetValue(null, null)).Split('"')[1];
   }
}

private void GoToAnchor(string url)
{
   System.Diagnostics.Process p = new System.Diagnostics.Process();
   p.StartInfo.FileName = GetDefaultBrowserPath();
   p.StartInfo.Arguments = url;
   p.Start();
}

// use:
GoToAnchor("file:///" + Environment.CurrentDirectory.ToString().Replace("\", "/") + "/site.html#Anchor");