使用C#禁用“正在保存的文档包含修订”Word对话框

8
Microsoft.Office.Interop.Word.ApplicationClass msDoc = new Microsoft.Office.Interop.Word.ApplicationClass();
msDoc.Visible = false;
msDoc.Application.Visible = false;
msDoc.Documents.Open(ref docPath, ref UNKNOWN,
                     ref READ_ONLY, ref UNKNOWN, ref UNKNOWN,
                     ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                     ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                     ref UNKNOWN, ref UNKNOWN, ref UNKNOWN, ref UNKNOWN, ref UNKNOWN);
msDoc.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize;
object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
msDoc.ActiveDocument.SaveAs(ref target, ref format,
                            ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                            ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                            ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                            ref UNKNOWN, ref UNKNOWN, ref UNKNOWN,
                            ref UNKNOWN, ref UNKNOWN);

问题在于当执行SaveAs时,会出现一个对话框。我正在尝试以编程方式禁用该对话框,以便用户永远不必提供Office / Word的输入或配置。我正在编写的实用程序可能会有数百个保存,因此弹出对话框并不好。
2个回答

16

我能够通过在代码中设置以下选项来找出一个编程解决方案:

msDoc.Application.Options.WarnBeforeSavingPrintingSendingMarkup = false;

就配置而言,我发现您还可以通过以下步骤禁用此 Office 功能:

点击“文件”选项卡 -> “选项” -> “信任中心” -> “隐私设置” -> 取消选中“在打印、保存或发送包含修订或注释的文件之前警告”


2
msDoc.Options.WarnBeforeSavingPrintingSendingMarkup = false;

或者

Word选项->信任中心->隐私选项->取消勾选"在打印、保存或发送包含修订或批注的文件之前发出警告"

对我无效。

对我有效的是:

msDoc.ActiveWindow.Close(WdSaveOptions.wdDoNotSaveChanges);


1
我希望我能够点赞十几次……我遇到了一个保存对话框的问题,来自邮件合并模板,这完全拯救了我的局面。 - Lazy Coder
除非这种方法不能解决问题。问题想要保存文档。在这里找到的方法将不会保存。这篇文章中第一行代码的问题是它处理了错误的Word对象。它应该处理Word应用程序,而不是文档。请参见已接受的答案。 - Cindy Meister

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接