use*_*051 9 html webbrowser-control embedded-resource
我的Visual Studio项目中有一个嵌入式HTML资源(helloworld.htm).(即,我已将HTML文件添加到项目中,并将其属性设置为"Embedded Resource".
在同一个应用程序中,我有一个WebBrowser控件.
我想指示WebBrowser控件使用res://协议显示HTML资源.
但我无法弄清楚使用这种URL方式解决嵌入式资源所需的确切格式.
有任何想法吗?谢谢!
Chr*_*low 12
我知道这个帖子已经死了,但我昨天不得不这样做,并且无法使这些方法起作用.所以我做了一些研究,并使用Stream类找到了下面的方法.我以为我会在这里发布,以防其他人遇到同样的废话:
Stream docStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("NameSpace.HTMLPage.html");
WebBrowser.DocumentStream = docStream;
Run Code Online (Sandbox Code Playgroud)
这对我来说没有任何修修补补,而且非常简单.我希望它能让其他人受益!
该水库:协议是不是死了,仍是嵌入到网页使用Windows应用程序的一个伟大的方式WebBrowser控制. 不幸的是,在我看来exe和dll文件中有两种类型的资源:C资源和.net资源.可以将C资源嵌入到.net dll中,但我还没弄明白怎么做.
为了回答你的问题,这里记录了res协议,但实际构建dll或exe是一个棘手的部分.res协议很简单.它的基本要点是你指定res://,通过可执行文件或dll的路径(如果它在当前路径中只是dll名称).对于HTML类型资源,请使用文件名.这是最近的MSDN文章,讨论了res协议的一些已知问题:http://support.microsoft.com/kb/220830.
构建dll或exe资源可能有点棘手.为了获得最简单的结果,请使用HTML类型的所有资源(甚至是.js,.png,.jpg文件).现代res文件允许您使用字符串命名文件,而不是使用#defined资源标识符命名资源.这样做会让你的生活更轻松.
高级提示:在资源名称中包含文件夹名称很棘手; 我还没想到它.我认为您可以通过在资源名称中添加斜杠来模拟文件夹,但我认为res协议被斜线混淆,认为路径的第一部分是资源类型.明确指定资源类型可以缓解这种情况.
高级提示2:对于路径,较新版本的IE可以处理'\'字符,但如果需要指定dll或exe的绝对或相对位置,可以使用'%5C'代替'\' .
其他资源:
MSDN社交:Webbrowser和res:协议
DelphiDabbler:如何创建和使用HTML资源文件