Проверить, включен ли элемент управления Outlook

Я работаю над outlook add ins. Я должен проверить, включена ли кнопка ленты outlook (idmso = "EncryptMessage") или нет.

Я попытался решить с помощью commandbars.GetEnabledMso ("idmso")

https://msdn.microsoft.com/EN-US/library/office/ff862202(v=office.14).aspx

но для перспективы реальная проблема, с которой я сталкиваюсь - это получить объект панели команд.

https://msdn.microsoft.com/en-us/library/office/ff865324(v=office.14).aspx

Пожалуйста, дайте мне знать решение для решения проблемы.

2 ответа

Вы можете попробовать использовать Accessibility API для этого.

Если использование Redemption является опцией, она предоставляет ленту и ее элемент управления через объект SafeInspector

set sInspector = CreateObject("Redemption.SafeInspector")
sInspector.Item = Application.ActiveInspector
set Ribbon =  sInspector.Ribbon
oldActiveTab = Ribbon.ActiveTab
Ribbon.ActiveTab = "Options"
set Control = Ribbon.Controls("Encrypt Message")
MsgBox Control.Enabled
Ribbon.ActiveTab = oldActiveTab 'restore the active tab

Вы можете попробовать использовать API специальных возможностей, чтобы найти кнопку на ленте инспектора и проверить, включена ли она.

Если использование Redemption является вариантом (я являюсь его автором), он предоставляет ленту и ее элемент управления через объект SafeInspector.

      set sInspector = CreateObject("Redemption.SafeInspector")
sInspector.Item = Application.ActiveInspector
set Ribbon =  sInspector.Ribbon
oldActiveTab = Ribbon.ActiveTab
Ribbon.ActiveTab = "Options"
set Control = Ribbon.Controls("Encrypt")
MsgBox Control.Enabled
Ribbon.ActiveTab = oldActiveTab 'restore the active tab
Другие вопросы по тегам