我開發了一個簡單的C#Winforms應用程序,它通過COM自動化加載MS-Word 2007文檔。使用C#編程配置MS-Word的信任中心設置
這是非常簡單和直接的,但取決於我需要編程的文檔啓用或禁用宏以及ActiveX控件。
可能有一種方法可以將這些信息存儲在註冊表中,但我希望通過實例來控制實例上的這些設置,因爲一次可能會運行多個併發請求。
所以我的問題是'如何使用COM自動化配置信任中心設置'。
我用Google搜索了幾個小時,但我已經能夠找到的是Application.AutomationSecurity屬性,但這種只接受以下值:
- MsoAutomationSecurity.msoAutomationSecurityLow
- MsoAutomationSecurity.msoAutomationSecurityForceDisable
- MsoAutomationSecurity.msoAutomationSecurityByUI
但是,Word 2007信任中心公開了以下設置:
宏設置:
- 禁用所有宏,並且不通知(匹配msoAutomationSecurityForceDisable)
- 禁用與通知所有宏(我不需要這個)
- 禁用無數字的所有宏(沒有等效)
- 啓用所有宏(匹配msoAutomationSecurityLow)
alt text http://www.visguy.com/wp-content/uploads/2007/05/v2007-security-settings.png
ActiveX控件(單獨配置,我還沒有發現任何的方法來控制這些,需要注意的是,根據這些設置的所有應用程序之間共享的屏幕截圖)
- 禁用所有控件,而無需通知
- 在啓用UFI控件前提示我。
- 在啓用所有帶有最小限制的控件之前提示我提示
- 啓用所有控件不受限制
我試圖同時改變這些設置錄製MS-Word宏的老把戲,但沒有這些步驟被記錄。
更新: 我在註冊表中找到了ActiveX控件設置的以下條目。看起來像ActiveX設置確實是全球性的,不能爲單個MS-Word實例指定,除非有人證明我錯了。
的ActiveX殘疾人
[HKEY_CURRENT_USER \軟件\微軟\辦公室\ COMMON \安全] 「DisableAllActiveX」= DWORD:00000001 「UFIControls」= DWORD:00000002
的ActiveX啓用與安全模式
[HKEY_CURRENT_USER \軟件\微軟\辦公室\ COMMON \安全] 「DisableAllActiveX」= DWORD:00000000 「UFIControls」= DWORD:00000002
的ActiveX啓用無安全模式
[HKEY_CURRENT_USER \軟件\微軟\辦公室\ COMMON \安全] 「DisableAllActiveX」= DWORD:00000000 「UFIControls」= DWORD:00000001
仍然熱衷於解決宏觀設置問題