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