有时想让自制的VB程序实现“自杀”,也就是在运行后删除自己,以达到特定的目的,其实代码很简单
Private Sub Command1_Click() '这是触发条件引用killme
KillMe
End Sub
Sub KillMe() '这是执行的代码
Open App.Path & "\temp.bat" For Output As #1
'"@echo off" 不显示执行过程
Print #1, "@echo off"
Print #1, "sleep 100"
'temp.bat 删除指定文件
Print #1, "del " & App.EXEName + ".exe"
'temp.bat 删除自身
Print #1, "del temp.bat"
Print #1, "cls"
Print #1, "exit"
Close #1
Shell App.Path & "\temp.bat", vbHide
End
End Sub
还有一种代码,可以实现在关闭程序后“自杀”的例子,使用方法同上,直接使用一个触发条件引用killme就行
两个 Killme 的代码区别是:上面这个可以直接运行程序后自动关闭程序并删除自己,下面这个需要在退出程序后才会自动删除自己。
Public Sub KillMe()
Dim mPath As String
On Error GoTo InIDE
Debug.Print 1 / 0 '触发IDE错误,上个保险算了
If Right$(App.Path, 1) = "\" Then
mPath = App.Path
Else
mPath = App.Path & "\"
End If
Open mPath & "Demon.bat" For Output As #1
Print #1, ":Repeat" & vbCrLf & _
"del """ & mPath & App.EXEName & ".exe""" & vbCrLf & _
"if exist """ & mPath & App.EXEName & ".exe""" & " goto Repeat" & vbCrLf & _
"del %0"
Close #1
Shell mPath & "Demon.bat", vbHide
InIDE:
End Sub