Chinaunix首页 | 论坛 | 博客
  • 博客访问: 500444
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 17:05:25

    这段时间,在Vista之家论坛闲逛时,经常看到有坛友问“为什么的主题不能用?提示视觉风格错误”。

    经过复查,自定义主题所需改动的3个文件(Shsvcs.dll,Uxtheme.dll,Themeui.dll)均无问题,版本号均正常。其实早在之前一段时间里,就有一部分Vista第三方主题下来,放到主题目录下就无法使用了。那么,问题出在哪里呢?

    研究很多第三方的主题后,无意发现,主题语言文件对应的语言包文件名与主题文件名不匹配,是导致主题不能用的一个原因。以我现在使用的 Aero Clear为例,主题文件夹下的视觉样式文件名为Aero Clear.msstyles,而对应的语言包(en-US或zh-CN)中的语言文件为Aero.msstyles。这就导致了 在加载主题时候,读取不出正确的语言文件(要找的是Aero Clear.msstyles.mui而非Aero.msstyles.mui),从而导致主题无法加载。为什么在安装更新之前都可以加载呢?原因就在于 缓存了这些语言文件,装载主题的时候不需要从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下的同名文件的拷来看看。

    因此,大家在按照彻底DIY - Windows Vista主题制作不完全教程教程做主题时,一定要保证theme主题文件,msstyles文件,以及zh-cn或en-us里的mui文件的文件名是一致的。

【责编:Zenghui】

--------------------next---------------------

阅读(94) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~