【发布时间】:2011-02-14 12:34:29
【问题描述】:
我正在调试一个调用 Word 2007 来呈现一些办公文件的 C# 程序。只要 Word 正常启动和关闭,一切都会运行良好。
在少数情况下不是这样,下次 Word 会弹出一条消息。它基本上说它上次没有正确启动,然后询问我是否想在安全模式下启动它。有什么办法可以避免这个弹出消息?
【问题讨论】:
我正在调试一个调用 Word 2007 来呈现一些办公文件的 C# 程序。只要 Word 正常启动和关闭,一切都会运行良好。
在少数情况下不是这样,下次 Word 会弹出一条消息。它基本上说它上次没有正确启动,然后询问我是否想在安全模式下启动它。有什么办法可以避免这个弹出消息?
【问题讨论】:
这里有几种方法:
您真的需要避免安全模式,还是只避免对话框?如果您可以使用 /safe 选项启动 Word,那么它将始终处于安全模式并且不应该询问您。
你知道是什么导致了安全模式吗?也许使用 /a 选项启动 Word 以禁用加载项(假设您没有使用任何加载项)将首先防止崩溃的原因。
看看您能否找出导致 Word 认为它应该在安全模式下打开的原因。必须有一个文件或注册表项会导致它出错。您可以使用Process Monitor 查看它查看的文件和注册表项,并查看常规启动的跟踪和要求安全模式的跟踪之间哪些不同。然后确保在打开 Word 之前该条件不存在。
有关 Word 的命令行选项列表,请参阅 http://support.microsoft.com/kb/210565。
【讨论】:
我对 powerpoint 也有同样的问题。我们经营一个在放映之间放映幻灯片的剧院。如果 powerpoint 以某种方式崩溃或关闭不干净,系统会提示您以安全模式启动。发生的情况是“你想在安全模式下启动 powerpoint”出现并且需要用户干预来修复。我想完全禁用此“功能”或安全模式。我最接近的是以下修复,我现在已经实施了,但我不知道它是否真的会阻止它,直到另一次崩溃(这可能需要几个月才能发生 - 谢天谢地)。不过看起来很有希望!
【讨论】:
很有可能,但您必须着眼于在诊断层面解决问题,而不是立即解决症状。
查看使用的代码 单词
本地化这段代码 可能会导致失败
找到特定的解决方案 发现问题
更正问题
不要指望“自动点击”对话框或任何其他类似的漏洞,这是一个 hack。
所讨论的代码将很有用,即使对于提供真正的帮助而言不是无价的。
【讨论】:
我在 .Net 中处理 PowerPoint 时遇到类似问题
当我在 PowerPoint 崩溃后从我的程序启动它时会显示安全模式消息框,这会停止我的自动进程
在对注册表进行一些调查后,将其删除
HKCU\Software\Microsoft\Office\15.0\PowerPoint\Resiliency(更改产品和版本)
在启动 Office 程序之前会避免进入安全模式
(此注册表项存储上次打开文件的信息,删除此注册表项后,PowerPoint 将不知道它已崩溃,因此可以正常打开)
【讨论】: