用VB的资源编辑器
VB默认的“工具”菜单里是没有这个选项的,在 外接程序\外接程序管理器 的属性页里,把“资源编辑器”勾上启动即可,接着点“工具”,里面就可以看到“资源编辑器”
在“资源编辑器”点击“自定义资源”那个图标(就是倒数第2个图标,问号前面那个)
然后选择你要合并的文件(假如我们添加一个abc.exe,文件大小999字节),这样就把一个文件添加进去,资源编辑器就会出现一个“CUSTOM”目录树,添加进去的文件序号从101开始。
文件大小要自己去查,对着文件点右键,属性里的就有 “大小”
程序如下:
Sub CreateFile(FileName As String, ResID As Integer, Size As Long)
'把资源读取出来保存为文件
On Error Resume Next
Dim File() As Byte 'Btye类型的数组
Dim Counter As Long
Dim FileNum As Integer
FileNum = FreeFile()
File = LoadResData(ResID, "CUSTOM ") '将自定义资源中ResID号资源读入数组
Open FileName For Binary As #FileNum '以二进制方式写文件
For Counter = 0 To Size - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终
Put #FileNum, , File(Counter)
Next Counter
Close #FileNum
End Sub
Private Sub Form_Load()
On Error Resume Next
Call CreateFile(App.Path & "\abc.exe ",101,999) '101是文件的序号,999字节是这个文件的大小
Shell App.Path & "\abc.exe ", vbNormalFocus '加上这句就马上运行了
End Sub
呵呵,虽然可以,但是大文件效率不高,最好用 WriteFile() 把第二文件加到EXE后面,打开时用
Open App.Path & "\ " & App.ExeName For Binary As FreeFile 的形式打开,用Get()读取。