2

如何确定安装了哪些 Outlook COM 或 PIA 插件,以及它们是否已启用。

我怎样才能得到这些信息,希望还有文件版本?

4

3 回答 3

4

(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 工具的加载项之外的其他注册表项。

于 2011-09-04T04:29:54.380 回答
1

要确定哪些已安装的加载项处于活动状态(启用/加载):

'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)
于 2019-05-17T14:41:03.243 回答
0

您甚至可以从 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
于 2014-06-13T13:57:49.013 回答