如何确定安装了哪些 Outlook COM 或 PIA 插件,以及它们是否已启用。
我怎样才能得到这些信息,希望还有文件版本?
如何确定安装了哪些 Outlook COM 或 PIA 插件,以及它们是否已启用。
我怎样才能得到这些信息,希望还有文件版本?
(1) 如果您想从另一个 Outlook 加载项中访问此信息,您可以使用 Application.ComAddins 对象(例如,它的 Count 属性为您提供已安装的加载项数量)。您可以遍历此集合并检查单个 COMAddin 对象的 LoadBehaviour 属性,如果它们正在加载或被禁用。
(2) 如果您想从 Outlook 外部访问信息,您可以考虑阅读 Software\Microsoft\Office\Outlook\Addins 项下的相应注册表项。
(3) 请注意,您根本无法信任此信息,因为可以为单个用户或所有用户安装 Office 加载项。因此,您不能绝对访问已安装的加载项,而只能通过阅读 HKLM 下的上述密钥 (a) 和 HKCU 下的 (b) 来访问运行您的应用程序/您的程序的当前用户。Application.COMAddins 对象向您显示两种信息混合在一起。
(4) 我不记得在 COMAddin 对象或注册表中都有可用的版本号。要访问它,您必须读取注册表以查找加载项的文件或程序集,并访问文件版本。请注意,用 Visual Basic 6 或其他语言编写的“旧”COM 加载项具有除 VSTO 加载项或基于 Add-in Express 工具的加载项之外的其他注册表项。
要确定哪些已安装的加载项处于活动状态(启用/加载):
'Loop through all installed add-ins and show whether they are active or not.
Dim app As New Outlook.Application
Dim name As String
Dim loaded As Boolean
For i = 1 To app.COMAddIns.Count
name = app.COMAddIns.Item(i).Description
loaded = app.COMAddIns.Item(i).Connect 'Returns True for active, False for inactive
MsgBox(name & ": " & loaded)
Next
按名称检查特定加载项的状态:
Dim app As New Outlook.Application
Dim addinName As String = "ADD-IN NAME"
Dim loaded As Boolean = app.COMAddIns.Item(addinName).Connect
MsgBox(addinName & ": " & loaded)
您甚至可以从 Outlook 外部访问该信息。
Dim count As Integer
Dim app As New Outlook.Application
count = app.COMAddIns.Count
For i = 1 To count
MsgBox(app.COMAddIns.Item(0).Description)
Next