Windows XP 采用了全新的主题管理内核,其功能非常强大,能够实现的效果非常炫目,但是居然不支持非官方的桌面主题,Plus!里那几个简单的主题不用几天就看腻味了。
一般来说一个完整的主题基本文件结构就是一个 .theme 文件和一个放置风格文件等其他文件的文件夹,在 [VisualStyles] 部分可以找到这个文件夹的名字。了解了 .theme 文件的结构之后,大家就完全可以按照自己的喜好编辑了,只是要确认所有文件的指向都必须是有效的,否则主题无法使用。
需要说明的是, .theme 文件不是必须的,.msstyles 风格文件才是。因此,有些主题只有 .msstyles 文件,没有 .theme 文件,一样可以照常使用。只是在显示属性的主题列表中是看不到的,必须到“外观”中才可能看到。
下面,根据 [VisualStyles] 中的路径我们再打开 Luna 文件夹,现在可以看到 luna.msstyles 风格文件了。.msstyles 是一个桌面主题的最主要的部分,它的内容一般包含了几乎大家所有在Windows里看到的一切,包括窗口、工具栏、按钮等等的颜色、背景图案、立体效果、字体之类,它基本可以确定一个主题的效果。有兴趣的朋友可以用 StyleBuilder 这个也是由 TGT Soft 出品的专门编辑风格文件的工具打开来看看。下面就是用 StyleBuilder 打开 Luna.msstyles 的部分内容截图。
看完截图大家基本清楚 .msstyles 的重要作用了吧,这就是为什么有很多主题就只有这一个文件却能够实现非凡的效果。这里有一点很重要,就是 .msstyles 文件只能放置在 X:WindowsResourcesThemes 目录的子目录下,并且所在的子目录名称必须和本身的文件名(不包括后缀名)一致,例如 Luna.msstyles 必须放在 X:WindowsResourcesThemesLuna 下才有效,大家可以试试将目录或者文件其中一项改名,就会发现该风格已经无法正常使用了。
大部分主题目录里还会有一个 Shell 目录,这里还是以官方主题 Luna 为例,和 Luna.msstyles 在一起的就有一个 Shell 目录,打开 Shell 目录能够看到三个子目录,分别是 Homestead、NormalColor、Metallic,正好分别对应 Luna 主题中的三个色彩方案:橄榄绿、默认(蓝)、银色。三个目录每个下面都有一个 shellstyle.dll 文件。shellstyle.dll 的作用比较简单,它定义的是资源管理器中左边的公共栏的样式,包括位图、字体和颜色配置,例如关闭和打开“详细信息”的按钮,以及大家打开音乐文件夹时文件列表右下角背景中显示的音符图案等。一般一个主题中有几个色彩方案就会有几个 shellstyle.dll 文件,每个 shellstyle.dll 的内容都是配合所针对的色彩方案的,不尽相同。
和 .theme 文件一样, Shell 文件夹和 shellstyle.dll 都不是必须的,很多主题就没有这个内容。即便将已有 shellstyle.dll 删除也不会对主题产生太大的影响,只是在该色彩方案下它所定义的内容会变成系统默认的。大家完全可以尝试在一个色彩方案中用其他色彩方案的 shellstyle.dll 文件替换,甚至可以自己用 Resource Hacker 之类的工具自己编辑里面的位图和颜色、字体定义等,有时候可以达到意想不到的效果。