gpt4 book ai didi

c# - 使用 C# 以编程方式配置 MS-Word 的信任中心设置

转载 作者:太空狗 更新时间:2023-10-29 18:28:25 24 4
gpt4 key购买 nike

我开发了一个简单的 C# Winforms 应用程序,它通过 COM 自动化加载 MS-Word 2007 文档。

这一切都非常简单直接,但是根据我需要以编程方式启用或禁用宏以及 ActiveX 控件的文档。

可能有一种方法可以将其存储在注册表中,但我想逐个实例地控制这些设置,因为可能同时运行多个并发请求。

所以我的问题是“如何使用 COM 自动化配置信任中心设置”。

我用 Google 搜索了几个小时,但我所能找到的只是 Application.AutomationSecurity 属性,但这只接受以下值:

  • MsoAutomationSecurity.msoAutomationSecurityLow
  • MsoAutomationSecurity.msoAutomationSecurityForceDisable
  • MsoAutomationSecurity.msoAutomationSecurityByUI

但是,Word 2007 信任中心公开了以下设置:

宏设置:

  • 禁用所有宏而不通知(匹配 msoAutomationSecurityForceDisable)
  • 禁用所有带有通知的宏(我不需要这个)
  • 禁用除数字签名宏之外的所有宏(无等效项)
  • 启用所有宏(匹配 msoAutomationSecurityLow)

alt text
(来源:visguy.com)


ActiveX 控件(单独配置,我还没有找到任何方法来控制这些,请注意,根据屏幕截图,这些设置在所有应用程序之间共享)

  • 在没有通知的情况下禁用所有控件
  • 在启用 UFI 控制之前提示我....
  • 在以最小限制启用所有控件之前提示我
  • 不受限制地启用所有控件

alt text

我尝试了在更改这些设置的同时录制 MS-Word 宏的老把戏,但这些步骤都没有被录制下来。

更新:我在注册表中找到了以下 ActiveX 控件设置条目。看起来 ActiveX 设置确实是全局的,不能为单个 MS-Word 实例指定,除非有人证明我错了。

ActiveX 已禁用

[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]“DisableAllActiveX”=双字:00000001"UFIControls"=dword:00000002

在安全模式下启用 ActiveX

[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]“DisableAllActiveX”=双字:00000000"UFIControls"=dword:00000002

在没有安全模式的情况下启用 ActiveX

[HKEY_CURRENT_USER\Software\Microsoft\Office\Common\Security]“DisableAllActiveX”=双字: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

我在 relevant section of the MSDN website 中发表了评论

关于c# - 使用 C# 以编程方式配置 MS-Word 的信任中心设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1600502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com