Windows Vista第三方主题无法使用解决方案

这段时间 , 在Vista之家论坛闲逛时 , 经常看到有坛友问“为什么下载的主题不能用?提示视觉风格错误” 。
经过复查 , 自定义主题所需改动的3个文件(Shsvcs.dll , Uxtheme.dll , Themeui.dll)均无问题 , 版本号均正常 。其实早在之前一段时间里 , 就有一部分Vista第三方主题下载下来 , 放到主题目录下就无法使用了 。那么 , 问题出在哪里呢?
研究很多第三方的主题后 , 无意发现 , 主题语言文件对应的语言包文件名与主题文件名不匹配 , 是导致主题不能用的一个原因 。以我现在使用的 Aero Clear为例 , 主题文件夹下的视觉样式文件名为Aero Clear.msstyles , 而对应的语言包(en-US或zh-CN)中的语言文件为Aero.msstyles 。这就导致了 Windows 在加载主题时候 , 读取不出正确的语言文件(要找的是Aero Clear.msstyles.mui而非Aero.msstyles.mui) , 从而导致主题无法加载 。为什么在安装更新之前都可以加载呢?原因就在于 Windows 缓存了这些语言文件 , 装载主题的时候不需要从aero.msstyles.mui当中读取对应语言数据 , 所以使用一直没有问题 。
正确的解决办法是:进入对应的语言文件夹 , 将aero.msstyles.mui 更名为视觉样式对应的文件名 。以 Aero Clear为例 , 将aero.msstyles.mui更名为Aero Clear.msstyles.mui , 然后重新打开“个性化” , 选择需要更换的主题即可 。所以 , 这不存在什么微软打击第三方主题的问题 。下图附件是安装了更新之后 , 正常启用的启用第三方主题(注意玻璃效果) 。
总结一下 , 出现这种情况的原因 , 就在于 Windows Vista 的多语言机制(MUI)上 。在 Vista 中 , MUI的原理是默认搜寻当前语言版本的文件夹(中文版是zh-CN) , 如果没有发现或者是文件夹下的MUI文件不符合 , 则进一步en-US文件夹下对应文件 。如果en-US下的对应文件再不符合 , 则加载失败 。如果各位发现主题加载失败 , 可试着建立一个 zh-CN文件夹 , 把en-US下的同名文件的拷来看看 。
【Windows Vista第三方主题无法使用解决方案】因此 , 大家在按照彻底DIY - Windows Vista主题制作不完全教程教程做主题时 , 一定要保证theme主题文件 , msstyles文件,以及zh-cn或en-us里的mui文件的文件名是一致的 。

    推荐阅读