使用res://协议与System.Windows.Forms.WebBrowser

本文关键字:Windows Forms WebBrowser System 协议 res 使用 | 更新日期: 2023-09-27 18:11:50

我试图使用位于dll中的资源(html文件)。使用WinForms WebBrowser,当我导航到文件时,什么都没有发生,而包含AxSHDocVw.dll和SHDocVw.dll和AxWebBrowser,它可以工作。是WinForms的WebBrowser控件以某种方式限制或什么?我可以让它运行res://吗?

使用res://协议与System.Windows.Forms.WebBrowser

查看我的帖子:https://stackoverflow.com/a/15672462/1413201。

基本要点是代码文件中有两种类型的资源。您需要包含一个C风格的资源脚本来使用res协议。导航错误可能在WebBrowser控件中被关闭,因此你不会看到错误。

你可以在IE中使用res协议来测试资源是否真的在文件中,使用C风格的资源编辑器只是为了反复检查。

我认为,是出于安全原因,WinForms的WebBrowser控件不处理res://链接。这将使别人很容易地访问包含在你的dll中的资源,而你可能不希望访问这些资源。

如果您想自己实现该功能,那么我建议您查看Assembly类及其用法。解析res:///到您的DLL路径,加载程序集,搜索给定的资源并返回给WebBrowser控件应该不难。