我需要从程序根目录中打开一个html文件,并将其跳转到指定的锚点。我可以用一个简单的
完全打开文件System.Diagnostics.Process.Start( “site.html”)
但是一旦我尝试将锚添加到最后,它就不再能够找到该文件了。
我能够将锚点放在那里并仍然使用
启动它string Anchor
Anchor =“file:///”+ Environment.CurrentDirectory.ToString()。替换(“\”,“/”)+ “/site.html#Anchor”; System.Diagnostics.Process.Start(锚);
然而,只要浏览器启动,它就会删除锚点。有什么建议吗?
答案 0 :(得分:5)
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");
答案 1 :(得分:2)
您可能需要将整个网址括在引号中以保留任何特殊字符(例如#)或空格。
尝试:
string Anchor = String.Format("\"file:///{0}/site.html#Anchor\"", Environment.CurrentDirectory.ToString().Replace("\\", "/"));
System.Diagnostics.Process.Start(Anchor);