1

我正在尝试使用本地 html 页面上的超链接在 C# 中打开 Windows 窗体。我已经尝试过了,我的一位朋友建议尝试这个:

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();
}

解决这个问题的最佳方法是什么?截至目前,当我单击超链接时,即使 url 确实发生了变化,这段代码也没有做任何事情。谢谢!

4

1 回答 1

1

根据设计,您不能从浏览器应用程序运行可执行文件,因为这将是一个可怕的安全失败。话虽如此,在浏览器中使用 ActiveX 组件将允许运行任意可执行文件——这就是为什么浏览器中的 ActiveX 一直存在如此安全问题的原因。

附加响应

如果您考虑一下,您还会看到出于同样的安全原因,浏览器会阻止打开本地文件。例外情况是,当打开的页面本身是一个本地文件时,浏览器将允许另一个打开的文件。这可能取决于浏览器,但我认为任何现代通用浏览器都不会允许它,尽管它们可能允许您通过配置选项或浏览器扩展来这样做。

于 2013-10-04T18:58:57.170 回答