如何以编程方式告知Outlook添加的内容是否已安装,以及它们是否已启用?

时间:2011-09-03 00:31:10

标签: outlook outlook-addin outlook-2007 outlook-2010

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

我如何获取此信息,并希望文件版本也是如此?

3 个答案:

答案 0 :(得分: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加载项或加载项。

答案 1 :(得分: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)

答案 2 :(得分: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