【问题标题】:How to prevent changing/deleting custom properties by user (MS Office)如何防止用户更改/删除自定义属性(MS Office)
【发布时间】:2019-06-11 22:12:23
【问题描述】:

我正在为 MS Word 创建一个加载项,其中一个功能是创建和设置文档属性。不幸的是,用户可以转到 MS Word 中的文档属性并更改值甚至删除属性。

我正在考虑将属性与值一起存储并在每个文档保存之前设置它。但是是否可以在 Add-in 的代码中捕获 BeforeSave 事件?

我考虑的另一种方式是某种只读属性/值,但对用户来说是只读的,对插件来说是可编辑的。但同样,这可能是不可能的......

如果有帮助,我将代码放在下面,用于添加和设置 PropName 和 PropValue。

有人知道如何解决吗? 谢谢。

        Microsoft.Office.Core.DocumentProperties properties;
        properties = (Microsoft.Office.Core.DocumentProperties)
            Globals.ThisAddIn.Application.ActiveDocument.CustomDocumentProperties;

        properties.Add("PropName", false,
            Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString,
            "PropValue");

【问题讨论】:

    标签: c# ms-word vsto add-in


    【解决方案1】:

    事实证明,有可能在 Add-in 中捕获 Save 事件。可以通过将 Globals.ThisAddIn.Application.DocumentBeforeSave 处理程序放入 ThisAddIn_Startup 来解决。

    因此,我将尝试通过保存属性的名称和值来解决我的问题,并且始终在保存文档之前检查该属性是否存在并设置它,或者创建它并设置存储的值(或删除和创建而不检查 - 没关系)。

    亲切的问候, 康菲兹德

    【讨论】:

      【解决方案2】:

      您还可以将内容存储在custom XML 中,任何人都可以编辑的唯一方法是在 Word 之外编辑 docx 文件。但它不能在字段中使用。

      【讨论】:

      • 谢谢克里斯,这是一个很好的提示,看起来很有希望,我会仔细研究一下。我是
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多