,如果是定时进行"自杀行为",那么下面的这一句应该放在哪里?
if year()>=2007 and mouth()>=12 and day()>=1 then
(新手,不知道上面的代码有没有错.)
[em02][em02][em02][em02][em02][em02][em02][em02][em02]
方法:
Private Sub Workbook_Open()If Now() >= DateSerial("2007", "12", "1") ThenActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName Application.QuitEnd IfEnd Sub
自杀封装后的EXE的代码
如题问题,要如何解决?
ABC.EXE的登录密码是:你的电脑年+月+日(今天是:20060910)
封装EXE的路径为:Mid(Worksheets("Temp").Cells(1, 1).Value, 1, InStr(Worksheets("Temp").Cells(1, 1).Value, "abc.exe") - 1)
如题问题,要如何解决?
ABC.EXE的登录密码是:你的电脑年+月+日(今天是:20060910)
封装EXE的路径为:Mid(Worksheets("Temp").Cells(1, 1).Value, 1, InStr(Worksheets("Temp").Cells(1, 1).Value, "abc.exe") - 1)
参考方法:
Private Sub Workbook_Open()If Now() >= DateSerial("2007", "12", "1") ThenActiveWorkbook.ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName Application.QuitEnd IfEnd Sub
说明:使用此方法绝对可以实现“自杀”。你也许会说,执行文件并没有删除呀。不错,EXE文件本身并没有删除,但是EXE文件此时已经不再捆绑EXCEL文件了。留给人家的只是一个EXE文件头。这时,这个EXE文件已经没有任何意义了。如果真的要十全十美的删除整个EXE文件,容我再想想!
你提的问题已经解决!偶只在Workbook_BeforeClose增加了9行代码。详见以下红色部分:
Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next '以下9行代码为增加部分,实现全能自杀(包括EXCEL部分以及EXE文件头部分)!!Application.DisplayAlerts = False '关闭警告提示 If Now() < DateSerial("2007", "1", "1") Then '设定自杀条件,本应用自2007年1月1日起执行自杀,也就是说只能用到2006年12月31日,过了2006.12.31就自杀。 exe_name = Worksheets("Temp").Cells(1, 1).Value '取EXE文件头名称 If VBA.Dir(exe_name) <> "" Then Kill exe_name '删除EXE文件 ActiveWorkbook.ChangeFileAccess xlReadOnly '冻结EXCEL文件 Kill ActiveWorkbook.FullName '删除EXCEL文件 Application.Quit '退出应用 Exit Sub '退出过程End If '条件判断结束'自杀代码结束 If Not 操作模块.ExitFlag Then Sheets("Temp").Select Call Yes_Click ActiveWorkbook.Save '文件存盘 With Application .DisplayFormulaBar = True .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Toobar List").Enabled = True .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("zbs112").Delete End With Dim myfile As FileSection '定义变量 Dim comc, exec, xlsc As String Application.Visible = False '隐藏EXCEL主窗口 exec = Worksheets("Temp").Cells(1, 1).Value xlsc = Worksheets("Temp").Cells(2, 1).Value comc = exec & " " & xlsc Open exec For Binary As #1 '打开EXE文件 ReDim myfile.Bytes(1 To EXE_SIZE) Get #1, 1, myfile.Bytes '取得固有文件头 Close #1 If VBA.Dir(exec) <> "" Then Kill exec Open exec For Binary As #1 '生成新的EXE文件 Put #1, 1, myfile.Bytes '先写入文件头 Open xlsc For Binary As #2 '打开xls临时文件 ReDim myfile.Bytes(1 To FileLen(xlsc)) Get #2, 1, myfile.Bytes Put #1, EXE_SIZE + 1, myfile.Bytes '将xls部分追加进EXE Close #1 Close #2 Shell comc, vbMinimizedNoFocus '删除临时xls文件 操作模块.ExitFlag = True Application.Quit End IfEnd Sub
删除模块,连窗体一块全能删除
sub a()Dim Vbc As Object For Each Vbc In Application.ThisWorkbook.VBProject.VBComponents Select Case Vbc.Type Case 1, 2, 3 With Application.VBE.ActiveVBProject.VBComponents .Remove .Item(Vbc.Name) End With End Select Nextend sub
TA的首页

