如何确定安装了哪些Outlook COM或PIA插件,以及它们是否已启用。
我如何获取此信息,并希望文件版本也是如此?
答案 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