当前位置 博文首页 > exe2swf 工具(Adodb.Stream版)

    exe2swf 工具(Adodb.Stream版)

    作者:admin 时间:2021-02-01 15:14

    Exe2swf ,将exe 格式的 flash文件转为swf 格式。网上有很多这方面的工具,这个是用vbscript写的。
    用法:
    将下面代码存为 exe2swf.vbs 
    将exe格式的flash拖放在此文件上,即可生成swf文件,
    更新日期:2005-01-20 09:30
    复制代码 代码如下:

    'exe2swf工具,
    '用法:将exe格式的flash拖放在此文件上,即可生成swf文件,
    'haiwa@http://www.51windows.Net
    '感谢jimbob提供帮助.
    dim AsoR,FlashFileName
    Set ArgObj = WScript.Arguments

    dim PositionStart,OKed,Tag,EndSize
    PositionStart = 920000'flash 4的播放器的大致字节数
    EndSize = 8    'exe文件结尾字节数,其它版本可以设置为0
    FlashFileName = ArgObj(0)'传递路径

    set AsoR=CreateObject("Adodb.Stream")
    AsoR.Mode=3 
    AsoR.Type=1 
    AsoR.Open 
    set AsoW=CreateObject("Adodb.Stream")
    AsoW.Mode=3 
    AsoW.Type=1 
    AsoW.Open
    AsoR.LoadFromFile(FlashFileName)

    OKed = true
    dim filesize
    filesize = AsoR.size

    if filesize>PositionStart then
        while OKed
            AsoR.Position = PositionStart
            Tag = Bin2Str(AsoR.read(20))
            if instr(Tag,"0000000") >0 then
                PositionStart = PositionStart + 1
            else
                PositionStart = PositionStart + 20
            end if
            if Tag = "00000000000000000708783" or Tag = "00000000000000000678783" then
                OKed = false
            end if
            'if  PositionStart > filesize then
            '    OKed = false
            'end if
        wend
    else
        msgbox "文件错误"
    end if
    PositionStart = PositionStart + 16
    'msgbox PositionStart
    AsoR.Position = PositionStart
    AsoW.write AsoR.read(filesize-int(PositionStart)-int(EndSize))

    '新文件名
    dim newFileName
    'newFileName = left(FlashFileName,len(FlashFileName)-4) & ".swf"
    newFileName = FlashFileName & ".swf"

    Set fso = CreateObject("Scripting.FileSystemObject")
    If (fso.FileExists(newFileName)) Then
        overwrite = msgbox(newFileName&" 已存在"& vbnewline &"要替换它吗?",308,"文件已经存在 - exe2swf脚本")
        if overwrite=6 then
            AsoW.SaveToFile newFileName, 2
        else
            msgbox "操作被取消",0,"exe2swf脚本"
        end if
    else
        AsoW.SaveToFile newFileName, 1
    end if

    AsoR.close
    set AsoR=nothing
    AsoW.close
    set AsoW=nothing

    Function Bin2Str(Bin)
        Dim I, Str
        For I=1 to LenB(Bin)
            clow=MidB(Bin,I,1)
            if ASCB(clow)<128 then
                Str = Str & (ASCB(clow))
            else
                I=I+1
                if I <= LenB(Bin) then Str = Str & (ASCW(MidB(Bin,I,1)&clow))
            end if
        Next 
        Bin2Str = Str
    End Function

    js
    下一篇:没有了