找回密码
 立即注册
大科技语录:
查看: 1865|回复: 7

【教学】桌面个性化入门(XP版)

[复制链接]
发表于 2008-4-27 13:18 | 显示全部楼层 |阅读模式
作者:palmax
转载至极限主题

一、桌面主题:
1.构成:主要由视觉风格、壁纸、屏保、鼠标指针、声音、图标等组成,这个只要用记事本打开windows\resources\Themes
目录下任一theme文件看下就知道了。

2.相关工具:

⑴视觉风格:StyleXP(TGT Soft 出品)、WindowBlinds(StarDock 出品)

⑵图标:IconPackager(StarDock 出品)

⑶鼠标:CursorXP
⑷其他:BootXP(修改XP的开机画面)、LogonLoader(修改XP的登录画面)、Styler(修改XP的视觉风格,需要破解的Uxtheme的支持)

二、基本知识:
1.视觉风格(又称可视风格)(Visual
Style):
WindowsXP采用了全新的主题管理器,不像win98那样简单了。在Windows\System32目录下,有个叫"Uxtheme.dll"的动态链接库文件,里面集成了主题的API,可是微软编制的这个文件不支持第三方的(即非微软的)的视觉风格(目前系统默认只支持luna和royale),让系统能支持第三方视觉风格的方法目前有二:一是安装StyleXP,二是安装Uxtheme的破解版,Uxtheme的破解版可以使用UxthemeMultiPatcher。在系统支持第三方的视觉风格后,如果想自己编写视觉风格,可以使用Tgt
Soft的StyleBuilder,来编辑msstyles文件和相应的shellstyle文件。

2.鼠标指针:鼠标指针目前有cur和ani两种格式。一套完整的鼠标指针方案应该包括15个样式,即正常选择Arrow、忙碌Wait、后台运行Appstarting、链接选择Hand、手写笔NWPen、移动SizeAll、水平调整SizeWE、垂直调整SizeNS、东北西南对角线调整SizeNESW、西北东南对角线调整SizeNWSE、不可用No、精确定位Crosshair、选定文本IBeam、候选UpArrow和帮助Help。鼠标指针的转换可以使用CursorXP来完成,新版本的StyleXP也支持鼠标指针转换。

3.图标:大部分图标基本都位于shell32.dll这个文件里。更改默认的图标的方法大致有三:一是手工修改注册表,二是使用软件(推荐IconPackager,当然也可以使用我的新作IconStyler),三是用reshacker或exescope等资源编辑软件直接替换shell32.dll里的图标资源(不推荐新手使用)。手工修改的方法将有专门的教程。桌面的常见图标如:我的电脑、网上邻居、回收站、我的文档的修改可以通过在桌面上点击右键->属性->桌面->自定义桌面来完成。


4.声音和屏保:系统声音事件的修改可以通过替换Windows\Media目录下的相应文件来完成(建议替换之前进行备份),替换后可能需要重新启动计算机才能生效。也可以用记事本打开theme文件,将[AppEvents\Schemes\Apps\.Default\事件名\.Current]段下的DefaultValue=
后面改称自己喜欢的声音的全路径,然后应用该主题文件即可生效。现在的屏保大多都带有安装功能,安装后在桌面点右键->属性->屏幕保护程序即可应用所安装的屏保,这里就不赘述了。


5.开机画面和登录画面:所谓开机画面是Windows开机时的引导画面,登录画面是系统用户登录和注销时的画面,不要将这两个画面混为一谈。开机画面的修改建议使用专门的软件如BootXP来完成,因为手工修改比较麻烦,需要同时将boot.ini和ntoskrnl.exe进行修改,危险较大;登录画面的修改可以使用专门的软件如LogonLoader,也可以下载好现成的Logonui.exe后,将注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon下边的UIHost字符串键值(默认为logonui.exe)改为新的文件的全路径名,然后注销或切换用户即可看到效果。
 楼主| 发表于 2008-4-27 13:18 | 显示全部楼层
时间长了,大家可能会对枯燥无味的系统图标感到厌烦。于是很多人都想更改自己电脑里的图标,显示自己的个性。有关图标的资源可以到本站图标区进行获取,这里介绍一下手工更改图标的方法:

1.[开始]菜单->"运行"->"regedit",打开注册表;

2.定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer分支下,新建一个项,名字叫"Shell
Icons"(如果以前用过更改图标的软件,这个项可能仍然保留着,但是对于一个刚安装好的操作系统,这个项需要自己建立),下面的工作就是在"Shell
Icons"下建立字符串键值了。关于shell32中图标列表,请参考IoriQ写的专门帖子。现在举个例子进行说明:比如想更改文件夹关闭时的图标,就建一个字符串键值,键名为3,(需要注意的是虽然在shell32.dll中对应的是第4个图标,但是序号却是从0开始的,这个有点类似于C语言中的数组下标)键值为新的图标文件的全路径名(注意这里支持icl图标库文件),比如"D:\icon\crystal\1.ico"或"D:\icon\pal\pal.icl,3"(由于icl文件的图标序号也是从0开始,这里icl,3表示使用该图标库的第4个图标)。后面字符串的建立和此相同,请参考前面提到的那个对应帖。需要说明一点,通过注册表修改的图标目前发现前50个部分有效,其中前20个基本全部有效,后面的不是很多;

3.修改好注册表后,可以关闭注册表了,下面的工作是使修改生效,这就需要重建图标缓存。所谓图标缓存,是指系统为显示图标分配的一个缓存区,这个缓存区不会自己刷新,需要向其发送一定的消息来通知其进行更新。重建图标缓存的方法可以使用在下制作的重建图标缓存工具来完成;

4.最后祝大家修改成功!
回复

使用道具 举报

 楼主| 发表于 2008-4-27 13:19 | 显示全部楼层
本篇说的桌面包括桌面图标、桌面壁纸、以及任务栏和[开始]菜单。

一、桌面图标:

这里讨论桌面图标常见项的修改。在桌面上点右键->属性->桌面选项卡->自定义桌面,复选相应项的小勾可在桌面显示或隐藏相应的项,在中间的图标列表里选择相应的图标可对图标进行更改。这里要说明一下桌面IE图标的修改:打开注册表,定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID项下,展开该分支,在其下新建一个项“{871C5380-42A0-1069-A2EA-08002B30309D}”,然后再在刚才建立的项下面再建立一个项“DefaultIcon”,接着在右边的窗口中修改“默认”键的键值,改为自己喜欢的图标的具体路径,然后关闭注册表,重建图标缓存即可。

二、桌面壁纸:

这里主要谈一下怎样将flash作为桌面,让自己的桌面变成动态桌面。其实道理很简单,从win98开始,系统就支持用html作桌面,我们要做的只是把flash嵌入到html里,并把flash设置成充满这个html,然后用html作桌面就可以了。那怎样把flash嵌入到html里呢?先建立一个空的网页(比如用frontpage去建立),然后把下面的这段代码放到<body></body>标签中就可以了:
<OBJECT id=desktop name=desktop width="100%" height="100%"
style="POSITION: absolute; LEFT: 0%; TOP: 0%;"
classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0">
<param
name="_cx" value="24262">
<param name="_cy"
value="16219">
<param name="Src" value="这里填swf文件的路径">
<param
name="Movie" value="这里填swf文件的路径">
<param name="WMode"
value="Window">
<param name="Play" value="0">
<param
name="Loop" value="0">
<param name="Quality"
value="High">
<param name="SAlign" value>
<param name="Menu"
value="0">
<param name="Base" value>
<param name="Scale"
value="ExactFit">
<param name="DeviceFont" value="0">
<param
name="EmbedMovie" value="0">
<param name="BGColor"
value="003366">
<param name="SWRemote" value>
<param
name="Stacking" value="below">
</OBJECT>


三、任务栏和[开始]菜单:

⑴在任务栏的时间前面加入个性化的文字:
打开“控制面板”->区域和语言选项->区域选项->自定义->时间,然后将时间格式改为:tttt
HH:mm
AM符号和PM符号填入你喜欢的文字就可以了。注意如果AM和PM的文字如果不同,那么会以中午12:00作为分界,0:00~12:00任务栏的时间前显示AM符号的文字,12:00~24:00显示PM符号的文字。

⑵更改开始按钮的文字:
更改系统文件虽然可以永久生效,但容易误操作,而且步骤较麻烦,这里提供一个更改开始按钮文字的小工具,可以动态修改,而且注销或重启计算机后更改会还原,对系统没有危害,具体链接:http://bbs.themex.net/showthread.php?t=17137

⑶更改开始菜单中的各项图标:
请先参看【原创】常见windows图标与注册表的对应关系一览,然后在注册表中作相应修改即可,修改完后,记得重建图标缓存。
回复

使用道具 举报

 楼主| 发表于 2008-4-27 13:19 | 显示全部楼层
1.如何删除任务栏和开始菜单属性里任务栏自定义通知的那些无用的项目?

打开注册表,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify,然后删除掉右边的"IconStreams"和"PastIconsStream"这两个键值,然后注销或重启即可;如果不想注销,在任务管理器中结束掉explorer.exe进程,然后重新启动该进程即可。

2.我不小心把快速启动栏里的那个"显示桌面"的程序给删除了,怎么恢复?
打开"我的电脑",进入"X:\Documents
and Settings\你的用户名\Application Data\Microsoft\Internet Explorer\Quick
Launch"目录(因为有的目录是隐藏属性,所以需要先在菜单栏里的"工具"->"文件夹选项"->"查看"里去掉"隐藏受保护的操作系统文件"的复选框和选中"显示所有的文件和文件夹"),然后在该目录下新建一个文本文件,双击用记事本打开,把下面的内容copy进去,然后保存并关闭记事本,然后给刚才新建的文本文件重命名,改为"显示桌面.scf"(扩展名一定要是scf)

显示桌面.scf的内容
[shell]
Command=2
IconFile=%SystemRoot%\system32\shell32.dll,34
[Taskbar]
Command=ToggleDesktop

其中,IconFile=%SystemRoot%\system32\shell32.dll,34这行也可以自定义成其他图标

3.我不小心把任务栏旁边的语言栏给关闭了,怎么找回来?
打开"控制面板",双击"区域和语言选项"->"语言"选项卡->"详细信息"按钮,然后在"设置"选项卡中点下面的"语言栏"按钮,在弹出的对话框中复选"在桌面上显示语言栏"和"在任务栏中显示其他语言栏图标",依次点击"确定"即可。

4.重新打开文件夹时,Windows未记住用于该文件夹的查看设置以及位置尺寸
请参考下面这篇文章:http://support.microsoft.com/kb/813711/
回复

使用道具 举报

 楼主| 发表于 2008-4-27 13:20 | 显示全部楼层
有部分刚开始接触美化的朋友不理解为什么必须使用StyleXP或Uxtheme-MultiPatcher才能使用第三方的msstyles文件,现在在这里给大家做个解释:

在WinXP中,系统界面的外观绘制工作由位于System32目录下的Uxtheme.dll中的API来完成。.msstyles文件是微软定义的一套界面元素集合文件,用StyleBuilder打开可以看到里面有很多位图,很显然,Uxtheme的工作就是把这些位图根据msstyles文件里定义的配置"贴"到系统界面的相应元素上,因此有人把这套绘制机制称为"引擎"。

然而,微软的这个引擎并为没有经过微软数字签名的msstyles文件工作。Uxtheme的工作机制大概是这样:
1.打开msstyles文件,调用Advapi32.dll中的CryptVerifySignatureW()检查数字签名,若返回FALSE,则不进行后续操作。
2.分析msstyles文件,为窗口过程的相关绘制函数(如OnNcPaint等)注册钩子回调,因此每个窗口应用程序创建时都会由注册的一系列回调函数完成窗口的绘制。
3.完成绘制后的更新通知。通常窗口都会收到WM_THEMECHANGED消息。

要想让引擎为第三方的msstyles文件工作,必须想办法绕过数字签名的验证。绕过的方法有很多,但目的都一样,就是使上面提到的CryptVerifySignatureW()始终返回TRUE即可。

下面再分别说下StyleXPUxtheme-MultiPatcher

StyleXP在安装后会启动一个StyleXPService的系统服务,这个服务的作用之一就是使Uxtheme.dll在调用CryptVerifySignatureW()验证msstyles文件时返回TRUE,而其他程序做其他验证则返回正常调用时原本的返回值。这个服务会驻留内存运行,因此会占少量的系统资源。
MulitPatcher则是直接修改Uxtheme.dll文件中验证msstyles文件的部分,经过修改的Uxtheme.dll相当于不对msstyles文件进行验证。有部分网友反映使用MulitPatcher后造成系统不稳定或者异常,因为不同版本的Uxtheme.dll中关于验证的偏移位置不同,所以可以去下载对应版本的修改后的文件,但注意由于文件保护机制的存在,需要使用专门的替换工具或在DOS进行。
回复

使用道具 举报

 楼主| 发表于 2008-4-27 13:20 | 显示全部楼层
不少朋友想知道如何更改系统的声音主题,其实很简单,打开注册表,定位到[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default],展开".Default"项,会发现有许多子项,其实每个子项都对应了触发一种系统事件时的声音,以[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemStart]为例,"SystemStart"顾名思义,为系统启动事件对应的声音,展开"SystemStart",可以发现有两个子项[.Current]和[.Default],前者是该事件当前使用的声音,后者是该事件系统默认的声音,对右边的键值进行编辑,就可以实现声音的修改了,一般我们修改[.Current]下的"(默认)"键值,双击键名进行编辑,填入你喜欢的声音文件的全路径,然后单击"确定",关闭注册表,然后触发一下该事件(比如注销后重新登陆),就可以听到效果了。
这里要特别说明的是,对声音的修改实际上不需要注销或重启机器,不信的话可以选[HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\Maximize\.Current]做实验,双击右边的"(默认)"键值进行编辑,填入声音文件的全路径,然后单击"确定",然后对任意一个窗口进行最大化操作,即可听到效果。
然而,遗憾的是目前声音主题只支持wma格式的文件。
回复

使用道具 举报

发表于 2008-4-27 13:23 | 显示全部楼层
大哥哥好厉害啊
回复

使用道具 举报

 楼主| 发表于 2008-4-27 13:32 | 显示全部楼层
转载,我显然没空写这么长的东东。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|大科技

GMT+8.8, 2024-12-23 07:57 , Processed in 0.254088 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表