看到很多反映说在安装了 Vista 更新之后(尤其是 KB933928 和 935280),第三方主题无法使用的问题.经过复查,自定义主题所需改动的 3 个文件(Shsvcs.dll,Uxtheme.dll,Themeui.dll)均无问题,版本号均为原来的 6.0.16386.那么,问题出在哪里呢?
我研究了很多第三方的主题,无意发现,主题语言文件对应的语言包文件名与主题文件名不匹配是导致主题不能用的一个原因.以我现在使用的 Aero 5048 为例,主题文件夹下的视觉样式文件名为 Aero 5048.msstyles,而对应的语言包 (en-US 或 zh-CN)中的语言文件为 Aero.msstyles.这就导致了 Windows 在加载主题时候,读取不出正确的语言文件(要找的是 Aero 5048.msstyles.mui 而非 Aero.msstyles.mui),从而导致主题无法加载.为什么在安装更新之前都可以加载呢?原因就在于 Windows 缓存了这些语言文件,装载主题的时候不需要从 Aero.msstyles.mui 当中读取对应语言数据,所以使用一直没有问题.
此问题正确的解决办法是:进入对应的语言文件夹,将 Aero.msstyles.mui 更名为视觉样式对应的文件名.以 Aero 5048 为例,将 Aero.msstyles.mui 更名为 Aero 5048.msstyles.mui,然后重新打开"个性化",选择需要更换的主题即可.所以,这不存在什么微软打击第三方主题的问题.
PS: 在主题文件和语言包不对应的情况下,如果把 Windows/res/cache 下面的全部东西都删掉,就会发现同样的问题.
网友评论