桌面主题的构成
桌面主题的构成
一个XP的桌面主题可以包含好几个部分,风格、壁纸、屏保、鼠标指针、系统声音事件、图标,除了风格是必须的之外,其他部分都是 可选的。风格可以定义的内容是大家在Windows里所能看到的一切,例如窗口的外观、字体、颜色,按钮的外观等等等等,一个桌 面主题里风格就决定了大家所看到的Windows的样子。
大家可以打开 X:\Windows\Resources\Themes 目录,这个目录就是XP中存放桌面主题的目录。你能看到有很多 xxx.theme文件,你在显示属性的“主题”列表里看到有多少个主题里就有多少个 .theme 文件,它就是Windows主题文件,一个桌面主题的总定义文件,它的内容不多,是文本格式的,以XP的默认官方主题 Luna 为例,大家用任何一个文本编辑器打开 Luna.theme ,可以很直观的看到其内容。
[Theme] 部分是定义我的电脑、我的文档、网络邻居以及回收站这几个主要部件的图标,Luna.theme 中 My Computer 定义的图标就是 X:\Windows\explorer.exe,0 ,也就是 explorer.exe 中包含的第一个图标,没有包含特定图标的主题这里一般都是这个值。这里即可以指向程序文件,也可以指向DLL文件或者图标文件。
[Control Panel\Colors] 部分定义的是各个Windows部件如标题栏、窗口背景、文字等的颜色,这里定义的颜色大部分时候是无关紧要的,因为系统会优先 按照色彩方案中的配色显示,这在后面的部分会讲到。
[Control Panel\Cursors] 定义的就是鼠标指针了,每一行定义一个指针文件,例如 Arrow 定义箭头光标,Wait 定义等待光标。Luna中这里是空的,代表使用Windows默认的鼠标指针,这里的定义必须是具体的 .cur 光标文件或者 .ani 动画光标文件。
[Control Panel\Desktop] 定义桌面的显示,包括壁纸图片的位置,显示方式,以及是否激活屏保。Luna中的 Wallpaper=%WinDir%web\wallpaper\Bliss.bmp 就是大家看得最多的“菜地蓝天”了 :) 。这里的 ScreenSaveActive=X 和下面的 [boot] 部分 SCRNSAVE.EXE=XXX 是对应的,前者管是否允许屏保,后者是屏保的具体地址。
[VisualStyles] 就是最关键的部分了,这里指向的就是一个桌面主题的核心部分: .msstyles 可视化外观风格文件,Luna中指的就是 Path=%WinDir%resources\Themes\luna\luna.msstyles ,后面会讲到。再往下走就是定义声音事件的了,和我们在 控制面板 → 声音和音频设备 → 声音 中设置的项目是一样的。
一般来说一个完整的主题基本文件结构就是一个 .theme 文件和一个放置风格文件等其他文件的文件夹,在 [VisualStyles] 部分可以找到这个文件夹的名字。了解了 .theme 文件的结构之后,大家就完全可以按照自己的喜好编辑了,只是要确认所有文件的指向都必须是有效的,否则主题无法使用。
需要说明的是, .theme 文件不是必须的,.msstyles 风格文件才是。因此,有些主题只有 .msstyles 文件,没有 .theme 文件,一样可以照常使用。只是在显示属性的主题列表中是看不到的,必须到“外观”中才可能看到。
下面,根据 [VisualStyles] 中的路径我们再打开 Luna 文件夹,现在可以看到 luna.msstyles 风格文件了。.msstyles 是一个桌面主题的最主要的部分,它的内容一般包含了几乎大家所有在Windows里看到的一切,包括窗口、工具栏、按钮等等的颜 色、背景图案、立体效果、字体之类,它基本可以确定一个主题的效果。有兴趣的朋友可以用 StyleBuilder 这个也是由 TGT Soft 出品的专门编辑风格文件的工具打开来看看。
看完截图大家基本清楚 .msstyles 的重要作用了吧,这就是为什么有很多主题就只有这一个文件却能够实现非凡的效果。这里有一点很重要,就是 .msstyles 文件只能放置在 X:\Windows\Resources\Themes 目录的子目录下,并且所在的子目录名称必须和本身的文件名(不包括后缀名)一致,例如 Luna.msstyles 必须放在 X:\Windows\Resources\Themes\Luna 下才有效,大家可以试试将目录或者文件其中一项改名,就会发现该风格已经无法正常使用了。
大部分主题目录里还会有一个 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 之类的工具自己编辑里面的位图和颜色、字体定义等,有时候可以达到意想不到的效果。
网友评论