我正在尝试使用本地html页面上的超链接在C#中打开一个窗体。我已经试过了,我的一个朋友建议尝试这个:
string curDir = Directory.GetCurrentDirectory();
string url;
url = ("file:///" + curDir + "/startpage.html" + "#accounts");
HttpUtility.UrlEncode(url);
if (webBrowser1.Url.AbsoluteUri == url)
{
Users u = new Users(this);
u.Show();
}
最好的方法是什么?截至目前,当我点击超链接时,即使网址确实发生变化,此代码也不会执行任何操作。谢谢!
答案 0 :(得分:1)
按照设计,您无法从浏览器应用程序运行可执行文件,因为这将是一个可怕的安全性失败。话虽如此,在浏览器中使用ActiveX组件将允许运行任意可执行文件 - 这就是浏览器中的ActiveX出现这样一个安全问题的原因。
添加回复
如果您考虑一下,您还会看到,出于同样的安全原因,浏览器会阻止打开本地文件。例外情况是,当打开页面本身是本地文件时,浏览器将允许另一个打开的文件。这可能取决于浏览器,但我不认为任何现代的常见浏览器都会允许它,尽管它们可能允许您通过配置选项或浏览器扩展来实现。