从嵌入在OCXState中的Flash SWF中提取

时间:2013-09-20 15:28:21

标签: c# axshockwaveflash

我有一个使用AxShockwaveFlash嵌入Flash SWF的表单。我不再拥有原始的SWF文件,而是想从AxShockwaveFlash对象中提取它。

我尝试将OCXState拉出并将其保存到磁盘(通过立即窗口),如下所示:

((System.IO.MemoryStream)axShockwaveFlash1.OcxState.ms)
.WriteTo(System.IO.File.OpenWrite(@"C:\Users\Michael\Desktop\Test.swf"))

但该文件似乎不是有效的SWF。


如何提取嵌入的Flash文件并保存到SWF文件?

1 个答案:

答案 0 :(得分:0)

axShockwaveFlash1.OcxState表示存储为AxHost.State的Active X控件的持久状态,当序列化时,它具有自己的头元数据。见AxHost.State

将其保存到文件会创建有效的SWF文件,但包含AxHost.State的其他元数据。通过检查SWF Header Structure,您可以看到Flash的开始位置,并使用安全编辑器(Notepad++),您可以在该点之前删除所有内容。

enter image description here