PE下桌面主题使用技巧解读

所属分类: 电脑基础 / 电脑常识 阅读数: 54
收藏 0 赞 0 分享
在正常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路径指向你自己的图片。
更多精彩内容其他人还在看

电脑中毒后怎么办 用记事本杀毒的方法

电脑中毒后,上网下载专杀工具后,仍然不能杀掉。如此翻来覆去,病毒未杀掉,人却濒临崩溃,下面为大家介绍下使用记事本杀毒的方法,感兴趣的朋友不要错过
收藏 0 赞 0 分享

台式机不能设置某些分辨率的原因及解决方法

想必很多朋友都有遇到台式机不能设置分辨率的情况吧,这里所指的是某些分辨率,下面为大家介绍个不错的处理思路,希望对大家有所帮助
收藏 0 赞 0 分享

京东商城怎么退货 京东申请退换货流程图文教程详解

网购已经成为了一种消费者普通接受了的一种购物方式,网购已经变得流行。尽管网购比价、购买方便,不过在产品出现问题,需要退货或者换货方面则显得要麻烦一些,在京东商城购物,需要退货时,首先需要提交退货申请,申请单由售后专业人员审核,期间您可能会接到售后客服
收藏 0 赞 0 分享

2013年热门网络热词土豪还有他们的特点,太奇葩(图)

2013最火的网路词汇就是土豪啦!土豪我们交朋友吧成为大家开玩笑时最常说的话!
收藏 0 赞 0 分享

怎么设置电脑不待机(长时间不使用会出现这种情况)

长时间不用电脑的话就会自动进入待机状态,那么我们怎么让电脑不自动进入待机呢,下面有个不错的教程,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

电脑不小心被锁了怎么办如何解除开机密码

人们设置密码的习惯有增无减,但是,密码一多就容易混淆或忘记,一旦忘记电脑就会被锁住。下面,我们就来看看如何解除开机密码,主要针对非Administrator用户以及Administrator用户
收藏 0 赞 0 分享

电脑怎么设置自动开机让电脑定时自动开机

很多新手朋友都不知道电脑怎么设置定时自动开机,主板上有实时时钟(Real Time Clock,RTC)负责系统的计时,我们可以通过RTC指定开机的时间,具体的操作步骤如下,感兴趣的朋友可以参考下
收藏 0 赞 0 分享

怎么设置电脑待机状态实现低耗节能

电脑处于待机状态可以节能,实现低功耗,同时也能实现快速启动并进入系统功能,下面为大家介绍下待机状态具体的设置方法,感兴趣的朋友不要错过
收藏 0 赞 0 分享

如何快速抢票 2014年春运抢票攻略

春运抢票马上就要开始了,现在已经有好多朋友下载好了抢票软件,等待抢票,说到抢票除了一些抢票软件之外,还是需要一些小心机的。别盲目的依靠那些抢票软件,重要的是心细手快,本文为大家介绍一些抢票时所要注意的一些小细节,让抢票的几率更大一些,一起来看看吧
收藏 0 赞 0 分享

怎么为电脑设置待机密码为电脑用户加密码教程

所谓的待机密码就是,在待机状态即无人操作下会自动锁屏,如果想要进入系统就必须输入密码,在添加待机密码之前,我们需要给电脑用户加个密码,具体的操作步骤如下,感兴趣的额朋友可以参考下
收藏 0 赞 0 分享
查看更多