如何防止用户更改/删除自定义属性 (MS Office)



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

我正在考虑存储带有值的属性并在每次保存文档之前对其进行设置。但是,是否可以在加载项的代码中捕获 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");

事实证明,有可能在加载项中捕获"保存"事件。它可以通过在ThisAddIn_Startup中放置:Globals.ThisAddIn.Application.DocumentBeforeSave处理程序来解决。

因此,我将

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

亲切问候Konfiuzd

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

最新更新