极速PE官网 > 最新动态 >

让你的PE穿上绮丽的外套

作者:pe系统 2014-12-21

让你的PE穿上绮丽的外套 2014-06-04

不想让本身建造的PE界面老是那么简略?下面教你一招,让你的PE穿上绮丽的外套——themes.

先说道理:Winlogon启动后先初始化一些全局变量,检测HKEY_LOCAL_MACHINE\SYSTEM\Setup下的SystemSetupInProgress是否为0,假如是正常启动,假如为1,则在启动体系处事SamSs时汇报它不要管SAM数据库,启动一些须要的处过后,好比Services,lsass,然后就启动HKEY_LOCAL_MACHINE\SYSTEM\Setup下由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);

    }

  
   开工吧:

  一、启用Themes必要以下文件:修改版的Winlogon挪用Msgina.Dll或直接修改MinLogon(XPE Feathure Pack 2007 中有此文件),Winlogon,Msgina.dll,Shsvcs.dll,Activeds.dll,uxtheme.dll,themeui.dll,sxs.dllC:\Windows\WinSxS\Manifests文件夹中的(对应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:\Windows\WinSxS\Policies\x86_policy.6.0.Microsoft.Windows.Common-Controls_6595b64144ccf1df_x-ww_5ddad775
  文件夹下的:
6.0.2600.5512.cat
6.0.2600.5512.Policy
C:\Windows\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83
  文件夹下的:
comctl32.dll
  尚有一些Windows文件夹System32下的文件,本身研究吧。(用Depends器材找一找文件的依靠相关)
  二、修改文件。(均已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。
  修改WinPE的注册表,在SYSTEM\Setup下比照着SystemSetupInProgress新建一个REG_DWORD值SystemSetupInProgrest,设为0。

  出格留意:要修改services.exe中的SystemSetupInProgress为SystemSetupInProgrest。
  同时,测试了基于bartpe的xpe硬盘版,由于xpe行使本身的pegina.dll从头进入sas序列,以是无法启用主题。
 

  三、上传一个修悔改的Minlogon,牢记修改注册表。
  对了,最重要的是别忘了加上你本身的主题文件,它们一样平常在Windows\Resources文件夹下。传了一个压缩的,是用我心如水的PE做的,(hhh333的也不错,不外他的是SP2的,测试不利便)我从头上传一个精简过文件的IS_文件,可直接替代我心如水内里的winpe.is_。
  1、修改的注册表,添加了一些键值,好比对DX8游戏的支持;
  2、修改为支持双核,理论上能在P4以上单核上启动;
  3、自动检测硬件,安装驱动。(必需有响应的INF和驱动文件)
  本日上传了一个本身用的Img名目标内核,按照站长的研究使主题自动开启。个中添加了VC2005的运行库,内置NV表现驱动,共同外置的DX9可以玩此刻的新游戏了。
  有一个小题目,墙纸不能自动加载是由于Windows只认bmp名目标图片,jpg名目标要转换成bmp。把你必要的墙纸转换成bmp,然后再修改HKEY_CURRENT_USER\Control Panel\Desktop下的WallPaper路径指向你本身的图片。