Option Explicit
Private Const MyExeSize As Long = 20480
Private Function CheckFileRead(FileName As String) As Boolean
Dim f As Integer
f = FreeFile
On Local Error Resume Next
Open FileName For Input Access Read Shared As #f
If Err.Number Then
'MsgBox Err.Description, vbCritical, Err.Number
On Error GoTo 0
Exit Function
End If
On Error GoTo 0
Close #f
CheckFileRead = True
End Function
Private Sub Form_Load()
Dim fn As String
fn = App.Path
If Right(fn, 1) = "\" Then
fn = fn & App.EXEName & ".exe"
Else
fn = fn & "\" & App.EXEName & ".exe"
End If
'MsgBox "读自身exe(" & fn & "):" & CheckFileRead(fn)
If CheckFileRead(fn) Then
Dim f As Integer
Dim TempNum As Long
f = FreeFile
Open fn For Binary Access Read Shared As #f
TempNum = LOF(f)
If TempNum > MyExeSize Then
TempNum = TempNum - MyExeSize
Dim TempBytes() As Byte
ReDim TempBytes(1 To TempNum)
Get #f, MyExeSize + 1, TempBytes
TxtText.Text = StrConv(TempBytes, vbUnicode)
End If
Close #f
End If
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then Exit Sub
On Local Error Resume Next
TxtText.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
On Error GoTo 0
Private Sub Label8_Click()
Dim APP2() As Byte
Dim Counter As Long
APP2 = LoadResData(101, "CUSTOM")
If Dir(App.Path & "\成功.Exe") <> "" Then
MsgBox App.Path & "\成功.Exe 已经存在!"
Exit Sub
End If
Open App.Path & "\成功.Exe" For Binary As #1
For Counter = 0 To FILESIZEOFAPP2 - 1
Put #1, , APP2(Counter)
Next Counter
Close #1
Dim nLen
On Error GoTo Err
nLen = FileLen(App.Path + "\成功.exe")
MsgBox nLen
Open App.Path + "\成功.exe" For Binary As #1
Seek 1, nLen
Put 1, , Text1.Text
Close #1
Exit Sub
Err:
MsgBox "未找到子程序"
Exit Sub
End Sub
2.exe的关键代码
Private Sub Form_Load()
Dim s1 As String * 100
On Error GoTo Err
Open App.Path + "\" + App.EXEName + ".EXE" For Binary As #1
'===========================
Seek 1, 20480
Get 1, , s1
'==========================
Shell s1, vbNormalFocus
'==========================
Close #1
Exit Sub
Err:
MsgBox "打开文件错误!"
Exit Sub
End Sub