新闻 | 天津 | 民生 | 广电 | 津抖云 | 微视 | 读图 | 文娱 | 体育 | 图事 | 理论 | 志愿 | 专题 | 工作室 | 不良信息举报
教育 | 健康 | 财经 | 地产 | 天津通 | 旅游 | 时尚 | 购物 | 汽车 | IT | 亲子 | 会计 | 访谈 | 场景秀 | 发布系统

"津云"客户端
  您当前的位置 :北方网 > IT浪潮 > 北方学院 > 软件文库 > 系统相关 正文
关键词:

宏病毒终结者


http://www.enorth.com.cn  2001-04-18 00:00

  最近,单位几个办公室的计算机都被感染了宏病毒,不是变成只读文件,就是不能保存文件。用杀毒软件清除后又被传染,有的文件杀毒后竟然打不开了。我花了大半天时间用VBA编写了一段防杀宏病毒的程序,解决了问题。

  

  工作原理:将下列宏代码存入WinWord的Normal.dot模板中,在打开任意一个或多个文档时Document-Open()自动检查每个文档中代码区的宏代码,如果发现宏代码则显示出前18行,并询问是否清除?由于该段程序彻底地封住了宏病毒的传染途径,使含有宏病毒的文档中的宏代码根本没有发作的机会,所以说理论上可以杀掉所有出现的宏病毒。

  

  附源码:(适用于Word 97/2000)

  

  Private Sub Document-Open()

  

  ′888

  

  On Error Resume Next

  

  Application.Options.VirusProtection = False

  

  ′取消宏代码检测

  

  If Application.Documents.Item(1).VBProject.VBComp-

  

  onents.Item(1).CodeModule.CountOfLInes 〉 0 And Application.Documents.Item(1)VBProject.VBComponents.

  

  Item(1).CodeModule.Lines(2, 1) 〈〉 ″ ′888″ Then

  

  ′发现打开的文档有宏代码时

  

  rr = Application.Documents.Item(1).VBProject.

  

  VBComponents.Item(1).CodeModule.CountOfLines

  

  If rr 〉 18 Then rr = 18

  

  ′获取宏代码的行数并控制在18行内

  

  For ee = 1 To rr

  

  kv = kv + Application.Documents.Item(1).VBProject.

  

  VBComponents.Item(1).CodeModule.Lines(ee, 1) + Chr(13)

  

  Next

  

  s = MsgBox(″在文档《″+ Application.Documents.

  

  Item(1) + ″》中找到宏病毒!″+ Chr(13) + kv + Chr(13) + Chr(13) + Chr(13) + Chr(13) + ″是否清除(Y/N)?″, vbYesNo + 32, ″发现宏代码:″)

  

  ′列出文档的宏代码并提示是否清除?

  

  If s = vbYes Then

  

  Application.Documents.Item(1).VBProject.VBComponents.

  

  Item(1).CodeModule.DeleteLines 1,Application.

  

  Documents.Item(1).VBProject.VBComponents.Item(1).CodeModule.CountOfLines

  

  Else

  

  MsgBox ″清除过程被中止,宏代码没有改变!″, 48, ″(C)2000 版权所有 严禁拷贝″

  

  End If

  

  If Application.Documents.Item(1).VBProject.VBComp-

  

  onents.Item(1).CodeModule.CountOfLines 〉 0 Then

  

  MsgBox ″中止清除过程或″ + Chr(13) + ″清除宏病毒时出错,请与计算机中心联系。″, 16, ″(C)2000 版权所有 严禁拷贝″

  

  Else

  

  v = ″计算机中心研制 -版本2000 Ver1.0″

  

  MsgBox ″OK! OK! 文档《″+ Application.Documents.Item(1) + ″》中宏代码已清除!″+ Chr(13) + Chr(13) + v, 64, ″(C)2000 版权所有 严禁拷贝″

  

  End If

  

  Else

  

  v =″计算机中心研制 -版本2000 Ver1.0″

  

  MsgBox ″在文档《″+ Application.Documents.Item(1) + ″》中没有发现宏病毒。″ + Chr(13) + Chr(13) + v, 64, ″(C)2000 版权所有 严禁拷贝″

  

  End If

  

  If NormalTemplate.Saved = False

  

  Then NormalTemplate.Save

  

  End Sub

  

  Sub ViewVBCode()

  

  MsgBox ″展望工作室 展望无限″ + Chr(13) + Chr(13) +″Email: laf@21cn.com ″ + Chr(13) + Chr(13) + ″(C) 2000 CopyRight By DALIAN″, 64, ″(C)2000 版权所有 严禁拷贝″

  End Sub

  

  在WinWord状态下按“Alt+F11”输入以上代码, 愿广大电脑爱好者早日摆脱宏病毒的阴影。

  

  

  

编辑 超级管理员
[进入IT论坛]
请您文明上网、理性发言并遵守相关规定,在注册后发表评论。
 北方网精彩内容推荐
无标题文档
天津民生资讯
天气交通 天津福彩 每月影讯 二手市场
空气质量 天津股票 广播节目 二手房源
失物招领 股市大擂台 天视节目 每日房价
热点专题
北京奥运圣火传递和谐之旅 迎奥运 讲文明 树新风
解放思想 干事创业 科学发展 同在一方热土 共建美好家园
2008天津夏季达沃斯论坛 《今日股市观察》视频
北方网网络相声频道在线收听 2008高考招生简章 复习冲刺
天津自然博物馆馆藏精品展示 2008年天津中考问题解答
带你了解08春夏服饰流行趋势 完美塑身 舞动肚皮舞(视频)
C-NCAP碰撞试验—雪佛兰景程 特殊时期善待自己 孕期检查
热点新闻排行 财经 体育 娱乐 汽车 IT 时尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本网站由天津北方网版权所有