为什么记事本在另存为对话框中的桌面文件上崩溃?

为什么记事本在另存为对话框中的桌面文件上崩溃?

这是一个令人困惑的问题 - 也许有人有想法。现在我没有主意了。

在 Win7 64 位上,以下操作会导致记事本崩溃:

  1. 在桌面上,右键单击,选择“新建 | 文本文档”。这将创建“新文本文档.txt”。
  2. 右键点击该文件,选择“编辑”。这将打开记事本并显示一个空文件。
  3. 选择“文件|另存为”:记事本崩溃,Win7报告“记事本已停止工作”。

现在,将文件移动到c:\temp并重复步骤 2 和 3:这次没有崩溃,另存为对话框正常显示。我可以为“打开”对话框创建类似的步骤。

我尝试过的事情:

  • 安全模式 - 不起作用,同样的问题
  • 创建新用户并再次尝试以该用户身份登录 - 没有崩溃
  • 以不同的方式命名文件,或在其他地方创建然后移动到桌面 - 同样的问题
  • 使用写字板 - 同样的问题
  • 使用 ShellExView 查看 shell 扩展 - 没什么特别的
  • 盯着每次崩溃的事件日志条目。这并没有让我明白。
  • 崩溃时查看进程资源管理器堆栈视图。挂起在函数“TaskDialog”处。
  • sfc.exe /scannow修复了一些文件,但问题仍然存在。

事件日志条目如下所示:

日志名称:应用程序
来源:应用程序错误
日期:2010 年 12 月 14 日 00:33:48
事件 ID:1000
任务类别: (100)
级别:错误
关键字:经典
用户:N/A
描述:
错误应用程序名称:NOTEPAD.EXE,版本:6.1.7600.16385,时间戳:0x4a5bc9b3
错误模块名称:COMCTL32.dll,版本:6.10.7600.16661,时间戳:0x4c6f6e4b
异常代码:0xc000041d
故障偏移:0x00000000000db770
错误进程 ID:0x198
错误应用程序启动时间:0x01cb9b1e140ab92a
错误应用程序路径:C:\Windows\system32\NOTEPAD.EXE
错误模块路径:C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_fa62ad231704eab7\COMCTL32.dll

除了放弃我的用户并重新开始使用新的配置文件之外,我还应该尝试什么?谢谢...

答案1

我今天在进行测试安装 (W7x64u sp1) 时遇到了此错误行为。我能够缩小罪魁祸首的范围,但 ymmv,请自行检查。

为了整理 Windows 资源管理器中的视图,即隐藏库、收藏夹、家庭组、登录用户,我参考了这个程序在支持下设置Acl通过命令行执行此操作。到目前为止,这对我来说似乎很有效。

现在我注意到,在每个新创建的用户帐户中(无论是否为管理员),记事本在尝试打开或保存文件时都会崩溃。在用于安装的默认管理员帐户中不会发生这种情况。我无法解释这一点,但我假设记事本的“最后文件位置”指向这些收藏夹或库...空间,这些空间被 Vishal 的程序隐藏(但尚未删除)。

在计算机上创建所有本地帐户后,此调整被推迟。可能有某种注册表值告诉记事本不要查找任何 M$ 错误位置,我不知道。

答案2

在我看来,之前的另存为路径(或网络驱动器)是阻碍因素。它想渲染它所在的路径,但无法渲染,因为条目可能处于离线状态或不可用。

我希望我记得记事本存储其最后保存路径的位置,但我忘记了位置。我会尝试等待或在线查找最后保存位置并进行更改。看看这是否能解决问题。

编辑

展望动态链接库似乎它可能正在从崩溃的选择文件对话框中的文件中加载缩略图。我的文档(或您之前保存到的文件夹)文件夹中是否有任何内容会导致缩略图生成失败?您可能在普通文件资源管理器中将文件夹大小调小(不会生成缩略图),然后在调用它的另存为对话框中将其调大。(我无法想象它使用 TaskDialog 或拖放功能)

答案3

这个问题困扰我一年多了。我尝试使用上面指定的解决方案来修改 Explorer>Tools>Folder Options>Navigation 窗格,但没有奏效。因此,我浏览了“文件夹选项”对话框中的每个选项卡(General、View 和 Search 选项卡),并使用每个选项卡上的 Reset Defaults 重置了所有内容。现在一切正常。

但结果是,我的 Windows 资源管理器默认视图不同。我无法再从 Windows 资源管理器访问文件夹选项对话框,但仍可以在控制面板中找到它。

谢谢,

答案4

问题存在于多个程序共享的 dll (comctl32.dll) 中,它是通用对话框控件,用于显示常见的“FileOpen”和“FileSave”对话框,类似于浏览文件夹的 Explorer 窗口。如果有指向离线网络位置的快捷方式,它可能会冻结应用程序,包括 Explorer 本身。如果某个文件导致应用程序在浏览目录时崩溃,那么这是另一个原因。如果是这种情况,则可能是由格式错误的图像/缩略图、格式错误的文档(.RTF、.DOC、.PPS、.XLS 等)、加载以呈现视频缩略图的错误编码编解码器等引起的。

还要记住,“桌面”是一个特殊的系统文件夹,它有一个已注册的 CLSID 和一个相关模块 (dll),浏览目录时会加载该模块。此 DLL 可能具有依赖项,无论是本机的还是第三方的。如果这些模块 (dll) 中的任何一个包含错误,都可能导致加载它的应用程序崩溃。

您应该在未安装任何第三方软件的环境中重现此问题。如果问题存在,则说明操作系统本身存在错误,应联系 Microsoft 并报告错误。如果错误存在于其他软件中,则应确定负责的模块 (DLL) 并向供应商报告错误。

相关内容