过期罐头电脑论坛-win7、win10雨人系统下载

过期罐头电脑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
雨人系统 过期罐头 视频编辑软件 电脑维修 win7系统下载 win10系统下载
查看: 793|回复: 0
收起左侧

[知识技巧] 怎么在WinPE中启用主题呢

[复制链接]
发表于 2012-8-24 08:21:27 | 显示全部楼层 |阅读模式
发贴请勿包含网站外链(直接下载地址和网盘除外),屡犯者将封禁ID、网址永久屏蔽,www.gqgtpc.com感谢支持!
核心提要: 如何在winpe中启用XP的主题一直是个难题,网上搜一搜,没有答案。XPE Plugin的作者Sherpya做了不少工作,但最后也说:Until themes are not working these files are only wasting space。没办法,自己努力

  
  如何在WINPE中启用XP的主题一直是个难题,网上搜一搜,没有答案。XPE Plugin的作者Sherpya做了不少工作,但最后也说:Until themes are not working these files are only wasting space。没办法,自己努力吧。
    有许多兄弟们都想要一个现成的,不过我更喜欢授人以渔,因为有好多人制作出来的PE比我的好多了,有哪位兄弟先做出来,让我也下载一个。
先说原理,如果你看不懂,那就和我一块等着下载别人的吧!!!!!
    Winlogon启动后先初始化一些全局变量,检测HKEY_LOCAL_MACHINE\SYSTEM\Setup下的 SystemSetupInProgress是否为零,如果是正常启动,如果为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);
    }
   那位说了:“把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:\Windows\WinSxS\Manifests以C:\Windows\WinSxS\Policies中的规则来调用相应的文件。

楼主热帖
[Windows xp] Windows XP传真功能使用全攻略
[windows xp系统下载] 【五月】极速Ghost XP SP3纯净版
[闲聊杂侃] 杂吃米饭有益健康
[影视前线] 2011热播剧《铁道游击队战后篇》全集
[闲聊杂侃] 输液的危害你知道多少?
[闲聊杂侃] 秋季防流感 生活习惯一定要改改
[ps教程_摄影摄像] 旅游摄影技巧完全攻略
[windows xp系统下载] 青菜系统 GhostXp Sp3 装机版YN1.
[windows xp系统下载] 新年纪念 GhostXP_SP3繁体中文版V
[Windows7] Windows7开机启动原理---提高启动速度的必备

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

本版积分规则

win7 64位旗舰版下载|win10系统下载|win7旗舰版|联系我们|网站地图|

GMT+8, 2016-12-6 23:58 , Processed in 0.274420 second(s), 29 queries .

官方免责声明:本站内容来自网友和互联网.若侵犯到您的版权.请致信联系,我们将第一时间删除相关内容!

Powered by Discuz!

过期罐头电脑论坛

win7旗舰版_windows10

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