Office 2013 及更高版本中的程序提供加载项复原能力,这意味着如果外接程序执行缓慢,应用将禁用加载项。 但是,你可以重新启用加载项并防止加载项被其他 Office 程序自动禁用。
阻止禁用加载项
虽然外接程序禁用功能不会禁用大多数外接程序,但您不希望您的外接程序始终被禁用。
下面是提高加载项性能的一些建议:
首选本机 COM 加载项,而不是托管加载项,因为托管加载项在 Outlook 启动期间必须产生加载.NET Framework的开销。
如果您有长时间运行的任务,如生成一个代价高昂的数据库连接,请在启动后推迟执行这些任务。
如有可能,请本地缓存数据,而不是在执行资源管理器的 FolderSwitch 和 BeforeFolderSwitch 事件或某个项目的 Open 事件期间执行高成本网络调用。
请注意,对 Outlook 对象模型的所有调用都在 Outlook 的主前台线程上执行。 如有可能,请避免长时间运行 Outlook 对象模型调用。
在 Outlook 2013 中,当从后台线程调用 Outlook 对象模型时,对 Outlook 对象模型的调用将返回E_RPC_WRONG_THREAD。
轮询是代价高昂的操作,所以比起轮询,应始终首选事件驱动的模型。
注意
在以下情况下,无法阻止 Outlook 禁用加载项:
加载项崩溃 Outlook。
无法加载加载项。
在这些情况下,崩溃或加载失败的原因需要与加载项所有者一起解决。
系统管理员对加载项的控制
用户可以控制哪些外接程序可以在其计算机上运行。 从 Office 2013 开始,系统管理员可以使用组策略为加载项配置增强的控制级别。 组策略将始终覆盖用户设置,并且阻止用户更改由 组策略“托管加载项列表”配置的加载项的加载项设置。
对于 Outlook,下表介绍了注册表项和设置。
名称 | 说明 |
---|---|
键 | Office 2013: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Outlook\Resiliency\AddinList Office 2016/2019/365: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\Resiliency\AddinList |
说明 | 通过此策略设置,可以指定始终启用、始终禁用 (阻止) 或可由用户配置的托管加载项列表。 注意:此处,术语“托管”是指由组策略处理的加载项,与使用托管编程语言开发的外接程序无关。 |
字符串 | 加载项的 ProgID |
值 | 指定值,如下所示: 0 = 始终禁用 (阻止) 1 = 始终启用 2 = 可由用户配置,且在启用时不受 “阻止所有非托管加载项 ”策略设置阻止。 |
注意
若要获取加载项的 ProgID,请在安装了加载项的客户端计算机上使用 Windows 注册表编辑器。 复制找到的注册表项名称:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<application>\Addins 或 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\<application>\Addins。 注册表项名称 区分大小写。
如果禁用或未启用此策略设置,则会删除托管加载项列表。 如果启用了 “阻止所有非托管加载项” 策略设置,则会阻止所有加载项。
由此策略禁用的外接程序绝不会被 Outlook 外接程序禁用功能禁用,由于性能、弹性或可靠性原因,该禁用功能会禁用外接程序。
如果用户选择“始终启用此加载项”,注册表将更新为包含要从自动禁用功能中免除的加载项的详细信息。
名称 | 说明 |
---|---|
键 | HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\Resiliency\DoNotDisableAddinList |
说明 | 此密钥可防止您指定的加载项被加载项禁用功能。 |
Dword | 加载项的 ProgID |
值 | 介于 1 和 A 之间的十六进制值,指示最初禁用加载项的原因: 0x00000001 Boot load (LoadBehavior = 3) 0x00000002 Demand load (LoadBehavior = 9) 0x00000003崩溃 0x00000004处理 FolderSwitch 事件 0x00000005处理 BeforeFolderSwitch 事件 打开0x00000006项 0x00000007迭代计数 0x00000008关闭 0x00000009崩溃,但未禁用,因为加载项在允许列表中 0x0000000A崩溃,但未禁用,因为用户在禁用对话框中选择了否 注意:x.0 占位符表示 Office (版本 16.0 = Office 2016/2019/365,15.0 = Office 2013) 。 |
注意
如果重新启用一次导致性能问题的加载项,则用户将来可能会在加载加载项的 Office 程序中遇到性能问题。
若要阻止不受此策略设置管理的加载项,您还必须配置“阻止所有非托管加载项”策略设置。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。