读书人

做个EXE合并器,合并成功,为什么后一个

发布时间: 2012-01-28 22:06:13 作者: rapoo

做个EXE合并器,合并成功,为什么后一个程序不会执行
做个EXE合并器,合并成功,为什么后一个程序不会执行

代码如下:,,请大家教教我,看哪里错了

If Text1.Text = " " Or Text2.Text = " " Or Text3.Text = " " Then
MsgBox "输入不完整! ", vbInformation
Exit Sub
End If

If Dir(Text1.Text) = " " Or Dir(Text2.Text) = " " Then
MsgBox "两个原始文件中,有一个不存在! ", vbInformation
Exit Sub
End If

Dim FilePatha As String
Dim FilePathb As String
Dim FilePathc As String

Dim FileLenA As Long
Dim FileLenB As Long
Dim FileLenC As Long

Dim FileDataA() As Byte
Dim FileDataB() As Byte
Dim FiledataC() As Byte

Dim FileLenLongA As Long
Dim FileLenLongB As Long
Dim FileLenlongC As Long


FileLenLongA = 0
FileLenLongB = 0
FileLenlongC = 0

Dim Alist As Long

FilePatha = Text1.Text
FilePathb = Text2.Text
FilePathc = Text3.Text

FileLenA = FileLen(FilePatha)
FileLenB = FileLen(FilePathb)
FileLenC = FileLenA + FileLenB

Open FilePatha For Binary As 1
Open FilePathb For Binary As 2
Open FilePathc For Binary As 3


ProgressBar1.Max = FileLenA
ProgressBar1.Value = 0

Do Until EOF(1)

DoEvents

FileLenLongA = FileLenLongA + 1
ReDim Preserve FileDataA(FileLenLongA)
Get #1, FileLenLongA, FileDataA(FileLenLongA)
ProgressBar1.Value = FileLenLongA

If FileLenLongA = FileLenA Then
Exit Do
End If


Loop


ProgressBar1.Max = FileLenB
ProgressBar1.Value = 0


Do Until EOF(2)

DoEvents

FileLenLongB = FileLenLongB + 1
ReDim Preserve FileDataB(FileLenLongB)
Get #2, FileLenLongB, FileDataB(FileLenLongB)
ProgressBar1.Value = FileLenLongB

If FileLenLongB = FileLenB Then
Exit Do
End If


Loop




ProgressBar1.Max = FileLenC
ProgressBar1.Value = 0


For Alist = 1 To FileLenA

DoEvents

Put #3, Alist, FileDataA(Alist)
ProgressBar1.Value = ProgressBar1.Value + 1

Next


For Alist = 1 To FileLenB

DoEvents

Put #3, FileLenA + Alist + 100, FileDataB(Alist)
ProgressBar1.Value = ProgressBar1.Value + 1

Next


Close

[解决办法]
因为这样合并不行的,应该自己做一个exe在最前面,然后后面跟上FileA,FileB

自己做的exe运行时把后面的文件copy出来,保存成临时文件再运行
[解决办法]
老大.合并不是你那样的!!不是把2个文件用2进制强制写在一块就是合并!WIN系统才不会自动运行后面的程序呢!!
给你一个思路,你把后面的文件数据写在前面EXE文件的自定义资源里面,运行EXE的时候,释放资源,生成第2个EXE文件(第2个文件),运行即可
具体的代码你可以找我的BLOG上有
[解决办法]
呵呵,楼主不要伤心,估计这个程序可以合并MP3之类的媒体文件。去试试吧

读书人网 >VB

热点推荐