故障现象:
当一个"适用于"一节中列出的Microsoft Office程序中打开文档时,您可能会提示您授予权限的ActiveX控件加载或允许这些控件维护的数据保持不变。某些ActiveX控件根本不加载。
此外,导入到另一个程序(如Microsoft SharePoint工作组服务网站包含ActiveX控件的Office文档时,您可能会收到与以下内容类似的警告消息:此应用程序时可能不安全的ActiveX控件初始化。如果您信任此文档的来源,请选择是,该控件将使用您的文档设置初始化。
如果您单击否,不会加载ActiveX控件。如果您单击是时,ActiveX控件的加载。
原因分析:
当您尝试打开的文档包含被标记为初始化(UFI)不安全的ActiveX控件时,将出现此问题。默认情况下,通过Office程序未加载或激活未标记为可安全初始化(SFI)的ActiveX控件。此问题也适用于Office程序中附带的ActiveX控件。此外,Winsock未注册为SFI控件。出于此原因,尚未实现IObjectSafety的ActiveX控件作为UFI控件处理。另外,ActiveX控件标记在注册表中的适当的组件类别也作为UFI控件处理。
解决方案:
注意:我们强烈建议不运行ActiveX控件,如果无法保证是否可以安全使用。但是,如果是您信任的源文档和个人或公司,它发送给您,您可以加载控件并允许它使用持续的数据。操作之前需要备份好电脑的重要数据和资料。
若要变通解决此问题,并更改Office程序对待ActiveX组件的方式,向更改Office程序行为的注册表中添加的UFIControls键。
UFI控件设置ActiveX组件的信息
当SFI控件,Office程序的行为相同:
· 如果UFIControls等于1(最不安全)、3或5:负载(无提示)与文档一起不安全模式中的ActiveX控件保留属性值如果他们否则存在默认属性丢失。
· UFIControls是否等于2、4(最安全)或6(默认设置):负载(无提示)与文档的安全模式中的ActiveX控件保留属性值如果他们否则存在默认属性丢失。
UFIControls=4是最安全的设置因为它不会强制Office程序以加载 UFI 控件具有默认属性,但为避免混淆UFI,默认值为一种新行为用户。UFIControls=6因为UFI控件加载与文档一起保留属性。
注意每个在下面列出的子项
HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Office\\Common\\Security
注册表项具有一个等效子项在以下注册表项下:
HKEY_CURRENT_USER\\SOFTWARE\\Policies\\Microsoft\\Office\\Common\\Security
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Office\\Common\\Security
在 Office XP 中,UFI 控件将显示一个对话框,对话框,但在Office程序中它们以静默方式初始化。要使用OfficeXP一样,请参阅文件,用户必须使用下列方法之一:
· 单击是可继续在警告消息。
· 将注册表设置更改为UFIControls=1。
· 若要使其ActiveX控件SFI ActiveX控件的作者,请与联系。
管理员可以通过使用自定义安装向导(CIW)设置默认值。有关CIW的详细信息,请参阅Office资源工具包。为此,请访问以下Microsoft网站的一个:
Office 2003
https://office.microsoft.com/en-us/office-2003-resource-kit/custom-installation-wizard-HA001140170.aspx(https://office.microsoft.com/en-us/office-2003-resource-kit/custom-installation-wizard-HA001140170.aspx)
XP office
https://office.microsoft.com/en-us/office-xp-resource-kit/custom-installation-wizard-HA001136278.aspx(https://office.microsoft.com/en-us/office-xp-resource-kit/custom-installation-wizard-HA001136278.aspx)
将注册表设置更改为UFIControls=1
要修改注册表,并添加UFIControl子项,请按照下列步骤操作:
1、 单击开始,单击运行,键入regedit,然后单击确定。
展开以下注册表子项:HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Office\\Common。
2 、用鼠标右键单击公共,指向新建,然后单击项。
3 、键入安全,然后再按 ENTER 以命名为新的子项。
4 、用鼠标右键单击安全,指向新建,然后单击DWORD值。
5 、键入UFIControls,然后再按 ENTER 以命名值。
6 、双击UFIControls。
7 、在数值数据框中,键入1,然后单击确定。
注意UFIControls的可用设置是从1到6。最安全的设置为4。默认设置为6,和最不安全的设置为1。有关有效值为此DWORD值的详细信息,请参阅"有关UFI控件设置对于ActiveX组件信息"部分。
8 退出注册表编辑器。
Forms3和ActiveX初始化(Office2003和OfficeXP)
通过使用公共安全注册表项,您可以指示要支持Forms3的所有Office2003和OfficeXP程序的Forms3ActiveX初始化安全设置的Office2003和OfficeXP程序。如果键的设置为2或3,提示用户确定将加载Forms3窗体的方式。提示只出现一次,每个程序中的会话。以下是该注册表项的位置:
HKEY_CURRENT_USER\\Software\\Microsoft\\VBA\\Security
在注册表或策略节点,值名称LoadControlsInForms可以被设置为下列值和各自的操作。
收起该表格展开该表格:
值的名称: | LoadControlsInForms |
值类型: | REG_DWORD |
值数据: | [1 | 2 | 3 | 4]。 |
数值数据的说明
数值数据的解释,如下所示:
· 使用1 表示的UFI或SFI签名控件,支持安全和不安全模式,则在不安全模式下加载控件。对于SFI签名的控件只支持一种安全模式配置,则加载控件在安全模式下。
· 使用2 (默认设置)对UFI签名控件,如果用户回答是提示,则加载控件在不安全模式下。如果用户回答否,则加载使用的默认属性。对于SFI控件支持的同时安全和不安全模式下,如果用户回答是,在提示符下在加载控件不安全模式。如果用户回答否,则加载控件使用安全模式。如果SFI控件只支持安全模式,则加载控件在安全模式下。
· 使用3 ufi签名控件,如果用户回答是提示,则加载控件在不安全模式下。如果用户回答否,则加载控件使用默认属性。对于SFI控件,在安全模式下进行加载。
· 使用4 对UFI签名控件,该控件的默认属性加载。对于SFI控件,在安全模式下 被认为是最安全的模式)中进行加载。
与ActiveX控件有关的问题的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:817112,https://support.microsoft.com/kb/817112/(不加载或正常使用 Office 2003 程序中打开文档时,ActiveX 控件)。
ActiveX控件是程序,可以将数据存储在注册表或控件本身。ActiveX控件都是类似于Microsoft Visual Basic for Applications宏不同之处在于它们编译为特殊文件类型并且可以由程序能够支持它们例如,Microsoft Word 2002,Microsoft Excel 2002。
若要使用ActiveX控件,控件链接引用嵌入在Office文档中。只能保留office程序或ActiveX控件的文档,则将激活如果迁移到新版本的文档的ActiveX控件链接引用。如果禁用ActiveX控件,则该文档的后续保存将保存不带(移除ActiveX控件)的链接引用的文档的一个版本。有时这是不理想,因为您必须具有该控件以查看文档的部分或全部内容。
不是所有的文件格式支持ActiveX控件链接。因此,即使与激活的ActiveX控件打开文档时,它才将其保存为不支持ActiveX控件的格式。注意如果要让程序运行控件,并使用持续的数据,则这样需要您自担风险。