如何从C#EmbeddedResource加载SWF而不首先写入文件?

如何从C#EmbeddedResource加载SWF而不首先写入文件?,c#,activex,axshockwaveflash,C#,Activex,Axshockwaveflash,我正在使用flash 10 activex控件将flash电影加载到我的WinForm中。不幸的是,它只走了一条路。我想做的是从一个我可以从嵌入式资源获得的流中加载swf,这样我就可以将swf嵌入到我的exe中,这样a)我就不必担心路径,B)我的swf就不那么公开了-使用和部署都更简单 我知道使用,但我不想再为我的项目添加另一个依赖项。有没有一种方法可以将swf加载到底层activex控件中而不必使用路径 我正在使用C#和.Net 3.5sp1。我不知道flash 10是否支持从资源加载web内

我正在使用flash 10 activex控件将flash电影加载到我的WinForm中。不幸的是,它只走了一条路。我想做的是从一个我可以从嵌入式资源获得的流中加载swf,这样我就可以将swf嵌入到我的exe中,这样a)我就不必担心路径,B)我的swf就不那么公开了-使用和部署都更简单

我知道使用,但我不想再为我的项目添加另一个依赖项。有没有一种方法可以将swf加载到底层activex控件中而不必使用路径


我正在使用C#和.Net 3.5sp1。

我不知道flash 10是否支持从资源加载web内容。但我认为Windows窗体和WPF中的web浏览器控件支持它

要创建本机资源,您需要一个本机资源编辑器。Visual C++有一个。在链接到C#程序之前,可以使用Windows SDK中的RC.exe将其编译为res文件

更新:
看起来IE的flash插件不支持res协议。将.swf文件嵌入到资源文件中并使用movie参数加载该文件将不起作用。尝试将Flash文件嵌入到web存档文件(.mht)中,并将.mht文件添加到您的资源中。

该路径是否始终为文件路径?或者它可以是一个URL?使用
HttpListener
(或类似工具)设置temp localhost web服务器应该非常简单,该服务器响应http请求将文件流回


另一种可能是命名管道;我想知道你是否能说服控件像打开文件一样打开一个命名管道?(毕竟,它们有一个逻辑文件路径)。不过,我几乎没碰过这些东西,所以我不能100%地说它是否有效。

谢谢你的意见。我相信它应该能够接受URL,但是设置localhost Web服务器对客户端非常友好吗?我相信命名管道只是为了将信息从一个进程传递到另一个进程,对吗?Flash的activex控件只接受一个字符串。您不必设置一个完整的Web服务器,只需设置一个tcp侦听器,该侦听器将使用一个简单的预定义头和swf内容进行响应。但您需要一个免费的TCP端口和一个后台工作程序。我想可能会有一些麻烦,但这不是火箭科学。不确定这是否是我们要走的路,但这是我见过的最接近的解决方案。谢谢。我尝试过res,但无法使其工作。我也没有在网络上看到任何it工作的例子。谢谢你。