Windows Themes显示不正确的问题


最近笔者在微软新闻组先后看到若干个 Windows 外观视觉样式(Windows Themes)显示不正确的问题,并在回复帖子时提了不少建议。笔者打算以此为题写一篇 Windows Themes 故障汇总,总结八个比较有代表性的引起 Themes 显示异常的问题。这里所说的 Themes 包括 Windows XP/Server 2003 的外观样式、Windows Vista/Server 2008/Windows 7 的 Basic 样式以及 AERO 样式。

★ 如果 Windows 无法应用任何 Themes、只能选择类似 Windows 2000 的经典外观:

1.系统服务 Themes 没有开启。

系统服务是最常见的引起 Windows 无法应用 Themes 的原因之一,特别是 Windows Server 系统,默认不开启此服务。以管理员权限执行 %SystemRoot%\system32\SERVICES.MSC 打开“服务”设置,将 Themes 服务开启、并将其运行方式修改为“自动”即可解决(Windows Server 2003)。

Windows Server 2008 仅开启 Themes 服务依然不够,还需要通过“管理工具”-“服务器管理”-“打开或关闭功能”-“添加功能”,手动添加默认没有安装的“桌面体验(Desktop Experience)”组件方可。微软官方提供的参考信息为:http://support.microsoft.com/kb/946397

笔者认为,Windows Server 2008 既然默认不安装“桌面体验”,其实完全没有必要预设一个根本无法生效的 Themes 服务,此服务完全可以在安装“桌面体验”时再添加。

2.视觉样式文件夹 Windows\Resources\themes 中的资源受损。

如果在选择 Themes 的列表中无法找到部分或全部选项,可能是视觉样式文件夹 Windows\Resources\themes 中的相关文件丢失或受损。

Windows XP 家庭版/专业版、Windows Server 2003 默认内置有 Luna;

Windows XP Media Center Edition 2005/Tablet PC Edition 2005 内置有 Luna 及 Royale Energy Blue;

Windows Vista/Server 2008 内置有 Aero。我们可以从其它相同版本的 Windows 计算机中直接复制 Windows\Resources\themes 文件夹进行修复。

3.与 Windows Shell 相关的若干系统文件受损或需要重新注册。

除了 Windows\Resources\themes 中的资源外,Windows Shell 相关的若干系统文件如果受损也可能会引起无法应用 Themes,甚至可能会在控制面板中打开“显示”属性时出现 RUNDLL32 运行错误。这些相关的系统文件包括 Explorer.EXE、Shell32.DLL、User32.DLL、Desk.CPL、ThemeUI.DLL 等,解决方法是 SFC /SCANNOW 检测并修复。

如果确认所有系统文件都没有损坏,但依然无法应用 Themes 或在打开“显示”属性时出现 RUNDLL32 运行错误,可以尝试执行 REGSVR32 MMSYSTEM.DLL 重新注册一下此文件。少数极端情况是除了 MMSYSTEM.DLL 外,还有其它系统文件也需要重新注册(此现象一般发生在查杀病毒后发现无法应用 Themes),此时可以将如下语句:

for %1 in (%WinDir%\system32\*.DLL) do REGSVR32.EXE /s %1

保存为 .BAT 批处理并运行,重新注册一下 system32 中的所有 .DLL 文件。但除了 Windows 系统文件外,某些位于 system32 的第三方 .DLL 也将被一并重新注册,可能会引起一些不必要的麻烦。

此外,控制面板的“显示”属性出现 RUNDLL32 运行错误的另一种可能是显示驱动程序配置不正确,如果以安全模式启动 Windows 可以正常打开“显示”属性,可能需要回到正常模式重新安装显示驱动程序。特别是有时在 Windows Vista 或以上版本中如果可以应用 Basic 样式、但却无法应用 AERO 样式,则很有可能是显示驱动程序配置不当或显卡本身不支持 DirectX 9 所致。


Copyright © 2016 phpStudy |