Как я могу программно сказать, какие надстройки Outlook установлены, и если они включены или нет? - PullRequest
2 голосов
/ 03 сентября 2011

Как определить, какие надстройки Outlook COM или PIA установлены, и включены ли они или нет.

Как получить эту информацию, и, надеюсь, версию файла?

Ответы [ 3 ]

4 голосов
/ 04 сентября 2011

(1) Если вы хотите получить доступ к этой информации из другой надстройки Outlook, вы можете использовать объект Application.ComAddins (например, его свойство Count дает количество установленных надстроек).Вы можете пройтись по этой коллекции и проверить свойство LoadBehaviour отдельного объекта COMAddin до настоящего момента, если они загружаются или отключены.

(2) Если вы пользуетесь палочкой для доступа к информации извне Outlookвы можете прочитать соответствующие записи реестра в разделе Software \ Microsoft \ Office \ Outlook \ Addins.

(3) Помните, что вы вообще не можете доверять этой информации, поскольку надстройки Office могутбыть установленным для одного пользователя или для всех пользователей.Таким образом, вы не можете получить доступ к установленным надстройкам абсолютно, но только для текущего пользователя, выполняющего ваше приложение / вашу процедуру, прочитав вышеупомянутый ключ (a) в разделе HKLM и (b) в разделе HKCU.Объект Application.COMAddins показывает обе данные, объединенные в одну.

(4) Я не помню, чтобы номер версии был доступен либо в объекте COMAddin, либо в реестре.Чтобы получить доступ к этому, вам нужно прочитать реестр, чтобы найти файл или сборку надстройки и получить доступ к версии файла.Обратите внимание, что в «старых» надстройках COM, написанных на Visual Basic 6 или на другом языке, есть записи в реестре, отличные от надстроек или надстроек VSTO, основанные на инструменте Надстройки Express.

1 голос
/ 17 мая 2019

Чтобы определить, какие установленные надстройки активны (включены / загружены):

'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)
0 голосов
/ 13 июня 2014

Вы можете получить доступ к этой информации даже из вне перспективы.

    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
...