支持让加载项一直处于启用状态

Office 2013 及更高版本中的程序提供加载项复原能力,这意味着如果外接程序执行缓慢,应用将禁用加载项。 但是,你可以重新启用加载项并防止加载项被其他 Office 程序自动禁用。

阻止禁用加载项

虽然外接程序禁用功能不会禁用大多数外接程序,但您不希望您的外接程序始终被禁用。

下面是提高加载项性能的一些建议:

  • 首选本机 COM 加载项,而不是托管加载项,因为托管加载项在 Outlook 启动期间必须产生加载.NET Framework的开销。

  • 如果您有长时间运行的任务,如生成一个代价高昂的数据库连接,请在启动后推迟执行这些任务。

  • 如有可能,请本地缓存数据,而不是在执行资源管理器的 FolderSwitchBeforeFolderSwitch 事件或某个项目的 Open 事件期间执行高成本网络调用。

  • 请注意,对 Outlook 对象模型的所有调用都在 Outlook 的主前台线程上执行。 如有可能,请避免长时间运行 Outlook 对象模型调用。

  • 在 Outlook 2013 中,当从后台线程调用 Outlook 对象模型时,对 Outlook 对象模型的调用将返回E_RPC_WRONG_THREAD。

  • 轮询是代价高昂的操作,所以比起轮询,应始终首选事件驱动的模型。

注意

在以下情况下,无法阻止 Outlook 禁用加载项:

  • 加载项崩溃 Outlook。

  • 无法加载加载项。

在这些情况下,崩溃或加载失败的原因需要与加载项所有者一起解决。

系统管理员对加载项的控制

用户可以控制哪些外接程序可以在其计算机上运行。 从 Office 2013 开始,系统管理员可以使用组策略为加载项配置增强的控制级别。 组策略将始终覆盖用户设置,并且阻止用户更改由 组策略“托管加载项列表”配置的加载项的加载项设置。

对于 Outlook,下表介绍了注册表项和设置。

名称 说明
Key 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
说明 通过此策略设置,可以指定始终启用、始终禁用 (阻止) 或可由用户配置的托管加载项列表。

注意:此处,术语“托管”是指由组策略处理的加载项,与使用托管编程语言开发的外接程序无关。
String 加载项的 ProgID
指定值,如下所示:
0 = 始终禁用 (阻止)
1 = 始终启用
2 = 可由用户配置,且在启用时不受 “阻止所有非托管加载项 ”策略设置阻止。

注意

若要获取加载项的 ProgID,请在安装了加载项的客户端计算机上使用 Windows 注册表编辑器。 复制找到的注册表项名称:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office<application>\Addins 或 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office<application>\Addins。 注册表项名称 区分大小写

  • 如果禁用或未启用此策略设置,则会删除托管加载项列表。 如果启用了 “阻止所有非托管加载项” 策略设置,则会阻止所有加载项。

  • 由此策略禁用的外接程序绝不会被 Outlook 外接程序禁用功能禁用,由于性能、弹性或可靠性原因,该禁用功能会禁用外接程序。

  • 如果用户选择“始终启用此加载项”,注册表将更新为包含要从自动禁用功能中免除的加载项的详细信息。

名称 说明
Key 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。