提取Excel、Word、PPT文件中的Flash文件的两种方法

方法一:VBA代码法

新建一个文件,然后拷贝以下代码到VBA模块中,运行代码,选择含有Flash的Excel文件确定,即可获取swf文件。

Sub ExtractFlash()

    Dim tmpFileName As String
    Dim FileNumber As Integer
    Dim myFileId As Long
    Dim MyFileLen As Long
    Dim myIndex As Long
    Dim swfFileLen As Long
    Dim i As Long
    Dim swfArr() As Byte
    Dim myArr() As Byte

    tmpFileName = Application.GetOpenFilename("MS Office File (*.doc;*.xls), *.doc;*.xls", , "Open MS Office file")

    If tmpFileName = "False" Then Exit Sub

    myFileId = FreeFile

    Open tmpFileName For Binary As #myFileId

    MyFileLen = LOF(myFileId)

    ReDim myArr(MyFileLen - 1)

    Get myFileId, , myArr()

    Close myFileId

    Application.ScreenUpdating = False

    i = 0

    Do While i < MyFileLen

        If myArr(i) = &H46 Then

            If myArr(i + 1) = &H57 And myArr(i + 2) = &H53 Then

                swfFileLen = CLng(&H1000000) * myArr(i + 7) + CLng(&H10000) * myArr(i + 6) + CLng(&H100) * myArr(i + 5) + myArr(i + 4)

                ReDim swfArr(swfFileLen - 1)

                For myIndex = 0 To swfFileLen - 1
                    swfArr(myIndex) = myArr(i + myIndex)
                Next myIndex
                Exit Do

            Else
                i = i + 3
            End If

        Else
            i = i + 1
        End If

    Loop

    myFileId = FreeFile

    tmpFileName = Left(tmpFileName, Len(tmpFileName) - 4) & ".swf"

    Open tmpFileName For Binary As #myFileId

    Put #myFileId, , swfArr

    Close myFileId

    MsgBox "Save the extracted SWF Flash as [ " & tmpFileName & " ]"

End Sub

方法二:UE修改法

1、打开这个含有Flash的Excel文件,进入设计模式,选中这个Flash后拷贝到桌面,获取一个片段文件
2、用ULraEdit32(UE)打开这个片段文件,查找“465753”字段
3、把“465753”字段之前的文字全部剪切,然后把文件另存为”X.swf”
4、OK

转载于:https://www.cnblogs.com/laoyebin/archive/2011/02/10/1950921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值