爱心论坛互帮互助电脑应用 → 解决Vista自定义主题无法使用问题

分享到:

  共有3089人关注过本帖树形打印复制链接

主题:解决Vista自定义主题无法使用问题

帅哥哟,离线,有人找我吗?
小猴乖乖
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 等级:小飞侠 帖子:1750 精华:30 积分:16454 金钱:27454 金币:0 魅力:9296 威望:0 登陆:335 注册:2007/4/5 13:51:22 近访:2010/8/25 14:55:41 在线:在线0天0小时0分钟.
离升级差0天20小时0分钟.
目前等级0
解决Vista自定义主题无法使用问题  发帖心情 Post By:2007/7/27 9:36:28 [显示全部帖子]

贴子已被锁定

 前一阵时间,出现了在安装vista更新之后(尤其是KB933928和935280),第三方主题无法使用的问题。经过复查,自定义主题所需改动的3个文件(ShsvCS.dll,Uxtheme.dll,Themeui.dll)均无问题,版本号均为原来的6.0.6000.16386。其实早在之前一段时间里,就有一部分Vista第三方主题下载下来,放到主题目录下就无法使用了。那么,问题出在哪里呢?


图片点击可在新窗口打开查看

  我研究了很多第三方的主题,无意发现,主题语言文件对应的语言包文件名与主题文件名不匹配,是导致主题不能用的一个原因。以我现在使用的 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,然后重新打开“个性化”,选择需要更换的主题即可。所以,这不存在什么微软打击第三方主题的问题。下图附件是安装了更新之后,正常启用的启用第三方主题(注意玻璃效果)。

  总结原因:

  这是就在于Windows Vista 的多语言机制(MUI)上。在 Vista 中,MUI的原理是默认搜寻当前语言版本的文件夹(中文版是zh-CN),如果没有发现或者是文件夹下的MUI文件不符合,则进一步en-US文件夹下对应文件。如果en-US下的对应文件再不符合,则加载失败。如果各位发现主题加载失败,可试着建立一个 zh-CN文件夹,把en-US下的同名文件的拷来看看。

  最后,在主题文件和语言包不对应的情况下,如果把C:\Windows\rescache下面的全部东西都删掉,就会发现同样的问题。

  声明:本文版权归远景论坛以及原作者AresVista所有,转载须注明原出处。



 回到顶部