windows下更换主题相信大家都会,但在PE下使用桌面主题对大家来说,或许就有点难度了,下面为大家介绍个小,大家可以参考下
在正常windows下更换主题相信大家也会了,但在PE下使用桌面主题大家应该就没见过吧。下面一起来操作一下吧。

  先看看原理:Winlogon启动后先初始化一些全局变量,检测HKEY_LOCAL_MACHINESYSTEMSetup下的SystemSetupInProgress是否为零,如果是正常启动,如果为1,则在启动系统服务SamSs时告诉它不要管SAM数据库,启动一些必要的服务后,比如Services,lsass,然后就启动HKEY_LOCAL_MACHINESYSTEMSetup下由CMDline指定的程序,等待程序结束,重启或者关机。如果SystemSetupInProgress == 1,则初始化系统服务后调用MSgina.DLL登录XP。MSgina.Dll 在初始化时调用SHsvcs.Dll产生一个ThemesStartEvent系统级事件,代码如下:

  #define ThemeWatchForStart_Ordinal 1

  #define ThemeWaitForServiceReady_Ordinal 2

  typedef DWORD (_stdcall *PFN_ThemeWaitForServiceReady)(DWORD dwTimeout);

  typedef BOOL (_stdcall *PFN_ThemeWatchForStart)(void);

  HMODULE hShsvcs = LoadLibrary(_T("shsvcs.dll"));

  if( hShsvcs != NULL )

  {

  PFN_ThemeWaitForServiceReady pfThemeWait

  = (PFN_ThemeWaitForServiceReady)GetProcAddress( hShsvcs, (LPCSTR)ThemeWaitForServiceReady_Ordinal);

  PFN_ThemeWatchForStart pfThemeWatch

  = (PFN_ThemeWatchForStart)GetProcAddress( hShsvcs,(LPCSTR)ThemeWatchForStart_Ordinal);

  if( pfThemeWait != NULL &&

  pfThemeWatch != NULL )

  {

  pfThemeWait(1000);

  pfThemeWatch();

  }

  CloseHandle(hShsvcs);

  }

  那位同学说了:“把SystemSetupInProgress直接改成0不就得了!”

  Lsass告诉你:“此路不通!重启吧你”

  我告诉你:“我们可以改一改Winlogon,让它先启动Msgina或是直接调用Shsvcs就行了。”

  ThemesStartEvent事件是出来了,怎么?还不行!

  那是因为还有个家伙在捣乱:SXS.DLL。他会在系统要求它调用指定Dll时用FusionpAreWeInOSSetupMode函数进行判断SystemSetupInProgress是否为零,如果为1,它就会告诉系统:“我那个什么......先歇会儿再说。”

  然而系统要实现Themes,恰恰需要它去找到合适的ComCtl32.Dll。

  你可以修改它,但是合适的Dll在哪里?

  这种概念是从微软的.NET FrameWork的GAC引入的。每当应用程序要求合适的Dll时,系统会调用SXS.Dll在%SystemRoot%WinSxS

  文件夹中寻找,当有多个相同文件时,它就查看C:WindowsWinSxSManifests以C:WindowsWinSxSPolicies中的规则来调用相应的文件。

  ———————————————————————————————————————————————————

  动手了:

  1、启用Themes需要以下文件:修改版的Winlogon调用Msgina.Dll或直接修改MinLogon(XPE Feathure Pack 2007 中有此文件),Winlogon,Msgina.dll,Shsvcs.dll,Activeds.dll,,uxtheme.dll,themeui.dll,sxs.dllC:WindowsWinSxSManifests文件夹中的(对应SP3)

  x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83.cat

  x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83.Manifest

  C:WindowsWinSxSPoliciesx86_policy.6.0.Microsoft.Windows.Common-Controls_6595b64144ccf1df_x-ww_5ddad775

  文件夹下的

  6.0.2600.5512.cat

  6.0.2600.5512.Policy

  C:WindowsWinSxSx86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83

  文件夹下的

  comctl32.dll

  还有一些Windows文件夹System32下的文件,自己研究吧。(用Depends工具找一找文件的依赖关系)

  2、修改文件。(均已SP3的文件为例)使用UltraEdit打开文件,Winlogon.exe 查找AF46FFFF85C07512,将最后的12改为27,查找

  56E8151D000056 FF7614E8FC,修改为56E8151D000056 E8BC91FFFF(看清了,只修改最后五位);打开SXS.Dll查找530079007300740065006d005300650074007500700049006e00500072006f00670072006500可以看到S.e.t.u.p.I.n.p.r.o.g.r.e.s.s的字样,把最后的s改成t,即73改成74。

  修改PE的注册表,在SYSTEMSetup下比照着SystemSetupInProgress新建一个REG_DWORD值SystemSetupInProgrest,设为0。特别注意要修改services.exe中的SystemSetupInProgress为SystemSetupInProgrest。

  同时测试了基于bartpe的xpe硬盘版,因为xpe使用自己的pegina.dll重新进入sas序列,所以无法启用主题。

  ———————————————————————————————————————————————————

  上传一个修改过的Minlogon,切记修改注册表。对了,最重要的是别忘了加自己的主题文件,它们一般在WindowsResources文件夹下。传了一个压缩的,是用我心如水的PE做的(hhh333的也不错,不过他的是SP2的,测试不方便),我重新上传一个精简过文件的IS_文件,可直接替换我心如水里面的winpe.is_

  1、修改的注册表,添加了一些键值,比如对DX8游戏的支持;

  2、修改为支持双核,理论上能在P4以上单核上启动;

  3、自动检测硬件,安装驱动。(必须有相应的INF和驱动文件)

  今天上传了一个自己用的Img格式的内核,根据站长的研究使主题自动开启。其中添加了VC2005的运行库,内置NV显示驱动,配合外置的DX9可以玩现在的新游戏了。

  有一个小问题,墙纸不能自动加载是因为Windows只认bmp格式的图片,jpg格式的要转换成bmp。把你需要的墙纸转换成bmp,然后再修改HKEY_CURRENT_USERControl PanelDesktop下的WallPaper路径指向你自己的图片。
最新资讯
雷军再次亲自下场,小米手机的增长焦虑

雷军再次亲自下场,小米

小米手机要在十个季度内,重回国内市场第一!”2018 年 2
汽车零售梦碎!趣店宣布二季度起停止大白汽车的销售

汽车零售梦碎!趣店宣布

趣店将在战略上全面收紧其他业务,包括大白汽车业务,并宣
华为首度公开股权文档室:任正非有否决权,但从未用过

华为首度公开股权文档

江西生表示,任正非主要通过自己的思想和管理哲学来对华
"秒"、"米"等国际单位制启用“常数”替代实物原器

"秒"、"米"等国际

5月20日起,全世界将采用新的国际单位制,时间单位“秒”
Lyft遭遇集体诉讼 IPO文件或存误导性内容

Lyft遭遇集体诉讼 IPO

受一起集体诉讼案件的影响,网约车服务提供商Lyft股价
京东方创始人王东升启动交班:不再参与下届董事提名

京东方创始人王东升启

5月20日早间开市前,京东方科技集团股份有限公司(京东方A
最新文章
电脑怎么关闭CPU自带的核显?

电脑怎么关闭CPU自带

电脑怎么关闭CPU自带的核显?电脑中的cup自带了核芯显卡
电脑怎么使用命令提示符中sort命令?

电脑怎么使用命令提示

电脑怎么使用命令提示符中sort命令?电脑经常会使用命令
电脑显示runtime error 216 at XXX怎么解决?

电脑显示runtime erro

电脑显示runtime error 216 at XXX怎么解决?电脑突然弹
电脑提示WYCmmon.dll文件丢失该怎么解决?

电脑提示WYCmmon.dll

电脑提示WYCmmon.dll文件丢失该怎么解决?电脑确实文件,
wlan如何修改密码?修改wlan密码的方法

wlan如何修改密码?修改

wlan就是我们通常所说的无线网络,即时无线网,用户在使用
电脑怎么设置平衡cpu的性能和功耗?

电脑怎么设置平衡cpu

电脑怎么设置平衡cpu的性能和功耗?电脑想要控制cpu的性