0

我有一个使用 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 文件?

4

1 回答 1

0

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

将其保存到文件确实会创建一个有效SWF文件,但会包含AxHost.State. 通过检查SWF 标头结构,您可以看到 Flash 从何处开始,并使用安全编辑器 ( Notepad++ ) 可以删除该点之前的所有内容。

在此处输入图像描述

于 2014-01-27T17:11:27.720 回答