【发布时间】:2010-11-22 12:30:09
【问题描述】:
我正在自动化 Word,所以我想取消所有警报。
Word.Application word = new Word.Application();
word.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
我使用上面列出的代码,但我不断收到来自 Word 的消息 - 例如,文档已经打开。有没有办法避免这种情况?如何抑制所有那些愚蠢的消息框?
编辑:
考虑到所有答案,我想看门狗确实是唯一的选择。糟糕的是,过去几年没有任何变化。
可以在没有真正答案的情况下关闭线程。
【问题讨论】:
-
我的第一个问题是为什么你的代码试图打开一个已经打开的文档?
-
能否贴出完整的代码,以便可以复制消息?
-
Word.Document wordDoc = word.Documents.Open(document);可以产生这种行为。问题不在于如何避免此类错误,因为并非在每种情况下都可以做到(例如用户交互)。
-
我不知道这意味着什么。您的用户在您的宏运行时打开文档?无论哪种方式,除非您在 MS Word 中遇到一些非常史诗般的竞争条件,否则尝试打开文档的任何方法开头的保护子句都可以正常工作。
-
没错。用户可以在自动化运行时启动 Word,这可能导致自动化失败。由于这些消息框阻止了流程执行,我会永远等待执行下一个操作。我可以实现超时保护,但这不是最优雅的方式 - 从我的角度来看。此外,还有与用户无关的问题,例如填充格式字段也可能导致消息框......
标签: c# .net ms-word office-interop