是什么让Word 2013新文档文件名有这么高的数字?

Mar*_*tin 8 microsoft-word microsoft-word-2013

当您打开一个新文档时,Word 会自动将其命名为“Document1”,每次打开另一个新文档时都会增加该数字。

但是有些日子数字不会按顺序增加(我的意思是 1,2,3,4,5,6 ......),而是它们跳到更高的数字,我很惊讶地看到大于 100 的数字,比如“Document538”在下面的图片中。 在此处输入图片说明

我最多只打开了 3 或 4 个文档。自动保存设置为 10 分钟。禁用我的加载项并没有改变行为。这是什么原因造成的?

这不会打断我的工作流程,但我会节省您阅读有关为什么我想知道这一点的详细解释的时间。简短的一个是了解 Word 的工作原理并找出它是否与其他问题有关。提前致谢...

(使用 Windows 8.1、Office 365)

小智 3

Word 的新文档计数从第一个 winword.exe 启动时开始,到最后一个 winword.exe 退出时结束。

我认为您所看到的很可能是系统上的另一个应用程序,该应用程序使用 Word 来实现某种功能并保持 winword.exe 运行。其常见用途是使用 Word 进行拼写检查。我在答案的底部放了一个示例,任何人都可以尝试,但 Microsoft 在 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 后,选择“过滤器”、“过滤器”(或直接按 Ctrl-L),将第一个字段切换到“路径”,然后将第二个字段切换到“包含”,将:粘贴{000209FF-0000-0000-C000-000000000046}到文本字段并验证它说要制作一个包含过滤器。请注意,我们正在搜索的 GUID 是 Word 的已知 GUID,但您可以通过在注册表中搜索 Word.Application 来轻松查找它。屏幕截图:Process Monitor 正在制作过滤器来搜索 Word COM 控件:

选择“添加”,然后选择“确定”。
进程监视器现在将为空白。如果底部状态栏中的事件没有计数(当前过滤器排除...),请确保选中“文件”、“捕获事件”。

如果您在任务管理器中结束 WINWORD.EXE 进程时能够触发 WINWORD.EXE 重新启动,请再次执行此操作以使 WINWORD.EXE 重新启动,并有望揭示出现故障的进程。如果情况并非如此,您可能需要重新启动 Windows 并重新启动进程监视器,以便更好地捕获它。然后,继续执行正常任务,定期检查进程监视器是否捕获了任何内容。当它最终完成时,进程名称字段应该会揭示罪魁祸首。如果不明显,请双击其中一项并选择“进程”选项卡以查看所有详细信息。

此外,如果您最终需要长时间运行进程监视器,您可能需要定期检查它并清除捕获(Ctrl-X)以防止页面文件内存耗尽(或者您可以使用另一个后备文件,但这是另一个话题了)。

为了演示该问题以及 Process Monitor 的功能,您可以使用一些简单的 VBScript 来模拟该行为。为此,请打开记事本并粘贴以下内容:

Set Word = CreateObject("Word.Application")
Word.Visible = False
Set NewDocument = Word.Documents.Add()
Run Code Online (Sandbox Code Playgroud)

然后将其另存为桌面test.vbs。切换到桌面并双击 test.vbs 来执行 VBScript。回到进程监视器,您将能够看到进程名称是 WScript.exe(默认的 VBScript 引擎),这就是负责启动 Word 的进程。屏幕截图:进程监视器显示 WScript.exe 正在启动 Word 控件:

您还可以从“开始”菜单启动 Word,此时您应该位于 Document2。您需要在任务管理器中手动终止 WINWORD.EXE 进程,否则它将继续运行。