以下是引用winak在2004-7-7 20:39:00的发言:
To 守柔:
比如,Win98+Office 97/2000,用代码强行更改注册表后运行时完全没有宏的警告提示,即使用户设置的安全性是高:
但是在Win2000+Office XP,Win2003+Office 2003中,如果用户将宏的安全等级设置为 最高,代码还是无法生效。
不知道守柔大师有没有遇到过累似情况?
TO winak:
首先,你是好久未来光临了,有些不务正业之嫌^_^,都是什么时候的贴子了?
其次,在OFFICE中,根据约定,宏安全级别的目的是针对代码,因此从理论上讲,如果取消宏禁用宏,应该不可能运行,但在97 /2000 中,可能存在些问题,那这是如果该文档保存为模板形式,则可能不会通过对宏的取消,不论其安全性设置。但不是普遍的,说到底病毒美丽莎便是通过这种方式获得传播的。
XP中肯定不存在。
遗憾的是微软在对EXCEL中的宏设置可以由老刀兄的精华贴子来安慰一些(因为有4.0宏表函数)强烈要求取消宏便退出或不可见的网友的心, 而在WORD中,竟无计可施,郁闷!
另外就更改宏安全性级别注册表中直接更改或者说是在程序中的宏安全性设置,是一个互动过程,也就是WORD每次打开程序,可以向注册表读取此值(level),退出程序则将WORD中的设置返回给注册表如果不一样则修改注册表中的level 值。
如果将宏安全性设为低运行宏,但核心代码还必需有一个”信任对VB项目的访问”问题,否则其危害程度是有限的。
是故,请WINAK看一下拙贴:《我眼中的WORD》,中有关此两点的论述。
> |