# 自己动手做主题包

**URL:** <https://meta.appinn.net/t/topic/27800>\
**Category:** 皮肤、配置和客制化\
**Tags:** 桌面美化, windows\
**Created:** [2021 年11 月 22 日 08:41 UTC](https://meta.appinn.net/t/topic/27800 "2021-11-22T08:41:13Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2021 年11 月 22 日 08:41 UTC](https://meta.appinn.net/t/topic/27800/1 "2021-11-22T08:41:13Z")

</div>

从 Windows 7 开始微软推出了主题包文件，扩展名 `themepack` 或者 `deskthemepack`，这种文件将各种系统主题所需要的壁纸、声音、界面配色等，用 CAB 格式一次性打包，只需轻轻双击就能立刻使用，方便使用和分享。下面讲几个窍门，教你自己动手搓一个。

首先，需要准备几幅桌面壁纸，统一存放到 DesktopBackground 文件夹里面。只要图片内容、品质、尺寸合理即可。

其次，准备其他一些资源，包括主题文件（`.theme`）和声音，和 DesktopBackground 文件夹放在一起。

下面就是重头戏，手搓主题文件。主题文件是一个文本格式的配置文件，只需几个参数就可以指定系统界面颜色、桌面壁纸、声音、鼠标指针、屏保等等，大部分参数都是可选的，没有指定的部分就用系统默认配置替代。

> **点击这里了解一下**
>
> 主题文件开头先要注明主题文件的名称，以及用来代表这个主题的图片，在控制面板显示。
> 
> ```auto
> [Theme]
> DisplayName=My Current Theme
> BrandImage=c:\Fabrikam\brand.png
> 
> ```
> 
> BrandImage 参数要求使用 80x240 像素的 PNG 图像，但是 Win10 设置里面用不上了。  
> 接下来是用于桌面的几个图标。
> 
> ```auto
> ; 从上到下依次是这台电脑、文档、网络、回收站
> [CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon]
> DefaultValue=%WinDir%\System32\imageres.dll,-109
> [CLSID\{59031A47-3F72-44A7-89C5-5595FE6B30EE}\DefaultIcon]
> DefaultValue=%WinDir%\System32\shell32.dll,-235
> [CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\DefaultIcon]
> DefaultValue=%WinDir%\System32\imageres.dll,-25
> [CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
> Full=%WinDir%\System32\imageres.dll,-54
> Empty=%WinDir%\System32\imageres.dll,-55
> 
> ```
> 
> 接下来是一些给系统配色的选项。滚动条、文本和按钮等元素的颜色都可以用 RGB 色值来表示。
> 
> ```auto
> [Control Panel\Colors]
> ActiveTitle=10 36 106
> Background=166 202 240
> Hilight=10 36 106
> HilightText=255 255 255
> TitleText=255 255 255
> Window=255 255 255
> WindowText=0 0 0
> Scrollbar=212 208 200
> InactiveTitle=128 128 128
> Menu=212 208 200
> WindowFrame=0 0 0
> MenuText=0 0 0
> ActiveBorder=212 208 200
> InactiveBorder=212 208 200
> AppWorkspace=128 128 128
> ButtonFace=212 208 200
> ButtonShadow=128 128 128
> GrayText=128 128 128
> ButtonText=0 0 0
> InactiveTitleText=212 208 200
> ButtonHilight=255 255 255
> ButtonDkShadow=64 64 64
> ButtonLight=212 208 200
> InfoText=0 0 0
> InfoWindow=255 255 225
> GradientActiveTitle=166 202 240
> GradientInactiveTitle=192 192 192
> 
> ```
> 
> 下面参数用来定制光标，可以用 CUR 或 ANI 格式的图片
> 
> ```auto
> [Control Panel\Cursors]
> Arrow=%WinDir%\cursors\sports_arrow.cur
> Help=%WinDir%\cursors\sports_help.cur
> AppStarting=%WinDir%\cursors\sports_wait.ani
> Wait=%WinDir%\cursors\sports_busy.ani
> NWPen=%WinDir%\cursors\sports_pen.cur
> No=%WinDir%\cursors\sports_no.cur
> SizeNS=%WinDir%\cursors\sports_size_ns.cur
> SizeWE=%WinDir%\cursors\sports_size_we.cur
> Crosshair=%WinDir%\cursors\sports_cross.cur
> IBeam=%WinDir%\cursors\sports_beam.cur
> SizeNWSE=%WinDir%\cursors\sports_size_nwse.cur
> SizeNESW=%WinDir%\cursors\sports_size_nesw.cur
> SizeAll=%WinDir%\cursors\sports_move.cur
> UpArrow=%WinDir%\cursors\sports_up.cur
> DefaultValue=Sports
> 
> ```
> 
> 接下来就是壁纸了，有两种路径可供选择。
> 
> 一种是指定一个图像文件作为壁纸。
> 
> ```auto
> [Control Panel\Desktop]
> Wallpaper=%WinDir%\web\wallpaper\Windows\img0.jpg
> ; 图片格式可以是 bmp、gif、jpg、png、tif
> ; 这部分除 Wallpaper 以外都是必填的
> TileWallpaper=0
> ; 0 为不能平铺，1 为可以平铺
> WallpaperStyle=2
> ; 0 为居中，2 为拉伸，6 为填充，10 为适应
> 
> ```
> 
> 另一种是以幻灯片的方式自动切换图片，这时候可以指定图册作为壁纸来源，让系统从指定来源按时切换壁纸。
> 
> ```auto
> [Slideshow]
> Interval=1800000
> ; 确定背景更改次数，单位毫秒
> Shuffle=1
> ; 是否随机切换，0 为不可
> ImagesRootPath=%ProgramFiles%\fabrikam\wallpaper
> ; 指定相册路径
> ; RssFeed= 从指定 RSS 来源下载图像，不能与 ImagesRootPath 共用
> ; 下面参数指定具体每个图片的路径
> Item0Path=%ProgramFiles%\fabrikam\wallpaper\ocean.jpg
> Item1Path=%ProgramFiles%\fabrikam\wallpaper\mountain.jpg
> Item2Path=%ProgramFiles%\fabrikam\wallpaper\river.jpg
> 
> ```
> 
> 接下来需要一个 `.msstyles` 文件来指定与桌面元素的大小和颜色有关的特定信息。这个部分是必填的。
> 
> ```auto
> [VisualStyles]
> Path=%ResourceDir%\Themes\Aero\Aero.msstyles
> Composition=0
> ColorStyle=NormalColor
> ; 如果 ColorizationColor 和 Transparency 完全匹配系统配色就要填 NormalColor
> ; 否则就填 Custom
> Size=NormalSize
> ColorizationColor=0x6B74B8FC
> Transparency=1
> 
> ```
> 
> 下面也有两种办法指定声音方案。
> 
> 一种是用各个参数将声音与应用程序发生的事件相关联。
> 
> ```auto
> [AppEvents\Schemes\Apps\.Default\SystemExclamation]
> DefaultValue=%WinDir%\media\chord.wav
> 
> [AppEvents\Schemes\Apps\.Default\SystemExit]
> DefaultValue=%WinDir%\media\tada.wav
> 
> [AppEvents\Schemes\Apps\.Default\SystemHand]
> DefaultValue=%WinDir%\media\chord.wav
> 
> [AppEvents\Schemes\Apps\.Default\SystemQuestion]
> DefaultValue=%WinDir%\media\chord.wav
> 
> [AppEvents\Schemes\Apps\.Default\SystemStart]
> DefaultValue=%WinDir%\media\The Microsoft Sound.wav
> 
> [AppEvents\Schemes\Apps\Explorer\EmptyRecycleBin]
> DefaultValue=%WinDir%\media\ding.wav
> 
> ```
> 
> 另一种方法是直接调用系统资源
> 
> ```auto
> [Sounds]
> SchemeName=@%SystemRoot%\System32\mmres.dll,-819
> 
> ```
> 
> 最后，配上这部分内容，系统就会承认你的主题是有效的。
> 
> ```auto
> [MasterThemeSelector]
> MTSM=DABJDKT
> 
> ```

最后，万事俱备，就将这些文件这些文件打包成 CAB 格式，改一下后缀名就大功告成了。

要打包成 CAB，可以尝试以下途径：  
用 CabMaker 打包，需要把所需文件和文件夹都放到一个文件夹里面

> **[GitHub - sapientcoder/CabMaker: CabMaker is a free Windows desktop tool that lets...](https://github.com/sapientcoder/CabMaker/)**
>
> CabMaker is a free Windows desktop tool that lets you quickly package up an entire folder of files (including subfolders) into a .cab file.

或者压缩成其他格式（比如 ZIP），然后用 ArcConvert 转码成 CAB，再改后缀名。

> **[dpaehl](https://sourceforge.net/projects/archivconvert/)**
>
> Download dpaehl for free. Converts files between many different archive formats. \* This convertor can convert the following archives: \* 7-ZIP/ LZH / CAB / ZIP / ARJ / ACE / RAR / TAR / TGZ / GZ / Z / BZ2 / YZ1 / YZ2 / GCA / BEL / RPM / DEB/ BH /...

* * *

详细资料见：

> **[主题文件格式 - Win32 apps](https://learn.microsoft.com/zh-cn/windows/win32/controls/themesfileformat-overview)**
>
> 本文档讨论主题 (.theme) 文件的格式。 .theme 文件是一个 .ini 文本文件，它分为多个部分，用于指定 Windows 桌面上显示的视觉元素。 在 .ini 文件中，部分名称被放在括号 (\\ \\ ) 中。

---

<div class="post-metadata">

作者： ![L11](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/l11/32/5516_2.png) [@L11](https://meta.appinn.net/u/L11)\
发布日期： [2023 年8 月 29 日 11:55 UTC](https://meta.appinn.net/t/topic/27800/2 "2023-08-29T11:55:41Z")

</div>

直接在主题里设置好然后保存主题不就行了吗

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2023 年8 月 29 日 14:05 UTC](https://meta.appinn.net/t/topic/27800/3 "2023-08-29T14:05:19Z")

</div>

这个也可以，就是得出来的只是单纯的 .theme 文件，要把自己创作或者收集的壁纸、声音、光标也包括在一起的话最好还是要动手配置主题文件再打包，就算以后重装系统了，找到这个主题包也能一步到位重新启用。

---

<div class="post-metadata">

作者： ![Aquamarine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Aquamarine](https://meta.appinn.net/u/Aquamarine)\
发布日期： [2023 年8 月 29 日 14:14 UTC](https://meta.appinn.net/t/topic/27800/4 "2023-08-29T14:14:25Z")

</div>

有没有不安装商店而下载主题的办法？

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2023 年8 月 29 日 14:16 UTC](https://meta.appinn.net/t/topic/27800/5 "2023-08-29T14:16:45Z")

</div>

注意看，楼上有个分享主题资源的链接
