当您打开一个新文档时,Word 会自动将其命名为“Document1”,并且每次打开另一个新文档时,数字都会增加。
但是有些日子数字并不是连续增加(我的意思是 1,2,3,4,5,6......),而是跳到一个更高的数字,我很惊讶地看到大于 100 的数字,例如下图中的“Document538”。
我最多只打开了 3 或 4 个文档。自动保存设置为 10 分钟。禁用我安装的插件并没有改变这种行为。这是什么原因造成的?
这不会打断我的工作流程,但我会节省您阅读我为什么想知道这一点的长篇解释的时间。简短的解释是为了了解 Word 的工作原理并找出它是否与其他问题有关。提前致谢...
(使用 Windows 8.1、Office 365)
答案1
Word 的新文档计数从第一个 winword.exe 启动时开始,到最后一个 winword.exe 退出时结束。
我认为您看到的情况很可能是系统上的另一个应用程序正在使用 Word 来实现某种功能并保持 winword.exe 运行。这方面的一个常见用途是使用 Word 进行拼写检查。我在答案的底部放了一个任何人都可以尝试的示例,但微软在 MSDN 上有他们自己的 C# 示例(搜索“如何:使用 COM Interop 使用 Word 检查拼写(C# 编程指南)”,因为我的声誉级别已经用完了链接)。
为了验证这是否确实是导致问题的原因,下次看到这种情况时,请关闭所有可见的 Word 窗口,打开 Windows 任务管理器,选择“详细信息”选项卡,然后查看 WINWORD.EXE 是否正在运行。
由于这种对 Word 的访问是通过 COM 控件进行的,因此此 WINWORD.EXE 的父进程将只是 svchost.exe。据我所知,事后无法查看调用该控件的程序。
要开始解决这个问题,假设 WINWORD.EXE 正在运行,请选择它并在任务管理器中选择结束任务。如果 WINWORD.EXE 重新启动并在几秒钟后再次开始运行,请参阅下面的选项二,了解如何记录并希望快速找出有问题的应用程序。
假设 WINWORD.EXE 不再运行,解决此问题的第一个方法是让任务管理器保持运行,选择“选项”、“始终在最前面”,然后启用“详细信息”选项卡,调整其大小或将其放在另一个屏幕上,使 W 命名的进程可见。然后,您可以继续正常的工作流程,并在启动新应用程序或执行任务时,观察 Word 是否启动。
第二种选择是使用 Microsoft TechNet 站点上的 Windows Sysinternals Process Monitor。如果您还没有该工具,则需要进行搜索,因为我的答案中没有留下任何链接。使用此工具,您可以捕获 Word COM 控件的启动时间和启动方式。下载、启动该工具并接受 EULA 后,选择 Filter、Filter(或按 Ctrl-L),将第一个字段切换为 Path,然后将第二个字段切换为 Contains,粘贴:{000209FF-0000-0000-C000-000000000046}
到文本字段并验证它是否显示要创建包含过滤器。请注意,我们正在搜索的 GUID 是 Word 的已知 GUID,但您可以通过在注册表中搜索 Word.Application 轻松地自己查找它。屏幕截图:进程监视器正在创建过滤器以搜索 Word COM 控件:
选择“添加”,然后选择“确定”。
进程监视器现在将为空白。如果底部状态栏中没有事件计数(当前过滤器排除...),请确保选中“文件”、“捕获事件”。
如果您在任务管理器中结束进程时能够触发 WINWORD.EXE 重新启动,请再次执行此操作以使 WINWORD.EXE 重新启动,并希望发现有问题的进程。如果不是这种情况,您可能需要重新启动 Windows 并重新启动进程监视器,以便更好地捕获它。然后,继续执行您的正常任务,定期检查进程监视器是否捕获了任何内容。当它最终完成时,“进程名称”字段应该会显示罪魁祸首。如果不明显,请双击其中一个条目并选择“进程”选项卡以查看所有详细信息。
此外,如果您最终需要长时间运行进程监视器,您可能需要定期检查它并清除捕获(Ctrl-X)以防止页面文件内存耗尽(或者您可以使用另一个备份文件,但这是另一个主题)。
为了演示该问题以及 Process Monitor 的运行方式,您可以使用一些简单的 VBScript 来模拟该行为。为此,请打开记事本并粘贴以下内容:
Set Word = CreateObject("Word.Application")
Word.Visible = False
Set NewDocument = Word.Documents.Add()
然后将其另存为 到您的桌面test.vbs
。切换到桌面并双击 test.vbs 以执行 VBScript。返回进程监视器,您将能够看到进程名称是 WScript.exe(默认的 VBScript 引擎),它负责启动 Word。屏幕截图:进程监视器显示 WScript.exe 正在启动 Word 控件:
您也可以从“开始”菜单启动 Word,此时您应该位于 Document2。您需要在任务管理器中手动终止 WINWORD.EXE 进程,否则它将继续运行。
答案2
我曾经在文件资源管理器中启用预览窗格时看到过这种情况,这会导致新文档的编号不断增加。禁用预览窗格后,Word 会再次正常运行。