Я разработал простое приложение C # Winforms, которое загружает документы MS-Word 2007 с помощью автоматизации COM.
Это все очень просто и понятно, однако в зависимости от документа, который мне нужен для программной активации или отключения макросов, а также элементов управления ActiveX.
Возможно, есть способ сохранить это в реестре, но я хочу управлять этими настройками для каждого экземпляра отдельно, поскольку одновременно может выполняться несколько одновременных запросов.
Итак, мой вопрос «, как мне настроить параметры центра управления безопасностью с помощью автоматизации COM * ».
Я гуглял часами, но все, что мне удалось найти, это свойство Application.AutomationSecurity, но оно принимает только следующие значения:
- MsoAutomationSecurity.msoAutomationSecurityLow
- MsoAutomationSecurity.msoAutomationSecurityForceDisable
- MsoAutomationSecurity.msoAutomationSecurityByUI
В Word 2007 Trust Center доступны следующие настройки:
Настройки макроса:
- Отключить все макросы без уведомления (соответствует msoAutomationSecurityForceDisable)
- Отключить все макросы с уведомлениями (мне этот не нужен)
- Отключить все макросы, кроме макросов с цифровой подписью (без эквивалента)
- Включить все макросы (соответствует msoAutomationSecurityLow)
(источник: visguy.com )
Элементы управления ActiveX (настроены отдельно, я не нашел никакого способа управления ими, обратите внимание, что согласно скриншоту эти настройки являются общими для всех приложений)
- Отключить все элементы управления без уведомления
- Подскажите, пожалуйста, перед включением элементов управления UFI ....
- Подскажите перед включением всех элементов управления с минимальными эрстрикциями
- Включить все элементы управления без ограничений
Я попробовал старый способ записи макроса MS-Word при изменении этих настроек, но ни один из этих шагов не записан.
Обновление:
Я нашел следующие записи для настроек элементов управления ActiveX в реестре. Похоже, что настройки ActiveX действительно глобальные и не могут быть указаны для одного экземпляра MS-Word, если кто-то не докажет, что я неправ.
ActiveX отключено
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security]
"DisableAllActiveX" = DWORD: 00000001
"UFIControls" = DWORD: 00000002
ActiveX включен в безопасном режиме
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security]
"DisableAllActiveX" = DWORD: 00000000
"UFIControls" = DWORD: 00000002
ActiveX включен без безопасного режима
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Common \ Security]
"DisableAllActiveX" = DWORD: 00000000
"UFIControls" = DWORD: 00000001
Все еще стремится решить проблему с настройками макроса