Jer*_*jer 8 c# automation office-2007 ms-word ms-office
我开发了一个简单的C#Winforms应用程序,它通过COM自动化加载MS-Word 2007文档.
这一切都非常简单直接,但是根据我需要以编程方式启用或禁用宏以及ActiveX控件的文档.
可能有一种方法可以将其存储在注册表中,但我希望逐个实例地控制这些设置,因为一次可能会运行多个并发请求.
所以我的问题是" 如何使用COM自动化配置信任中心设置 ".
我用谷歌搜索了几个小时,但我能找到的只是Application.AutomationSecurity属性,但这只接受以下值:
但是,Word 2007信任中心公开了以下设置:
宏设置:
替代文字http://www.visguy.com/wp-content/uploads/2007/05/v2007-security-settings.png
ActiveX控件(单独配置,我还没有找到任何方法来控制这些,请注意根据屏幕截图这些设置在所有应用程序之间共享)

我已经尝试了在更改这些设置时记录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
仍然热衷于解决宏设置问题
看起来我要回答我自己的问题.
我测试了它,可以确认映射如下:
宏设置:
msoAutomationSecurityForceDisable =禁用所有宏而不通知
msoAutomationSecurityByUI =禁用除数字签名宏之外的所有宏
msoAutomationSecurityLow =启用所有宏
据我所知,全局ActiveX设置只能通过直接编辑注册表来配置
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
| 归档时间: |
|
| 查看次数: |
14921 次 |
| 最近记录: |