安全的替换XP的开机画面
本帖最后由 gucong 于 2010-2-26 03:28 编辑网上有不少替换XP的开机画面的方法,经过测试,发现有时会使系统无法启动。利用AutoIt则可以安全的替换它。
完成后效果:
AutoIt方式实现方法代码:
SplashTextOn("XP to VISTA", "正在更改开机画面")
RunWait(@SystemDir & "\reshacker.exe -addoverwrite ntoskrnl.exe ,Kernel.exe ,Kernel.res ,,,",@SystemDir)
$boot = IniReadSection("C:\boot.ini", "operating systems")
FileSetAttrib("C:\boot.ini","-RASH")
For $i = 1 To $boot
If StringInStr($boot[$i],"Microsoft Windows XP") Then
$boot[$i]=StringReplace($boot[$i],"Microsoft Windows XP Home","Microsoft Windows Vista Ultimate")
$boot[$i]=StringReplace($boot[$i],"Microsoft Windows XP Professional","Microsoft Windows Vista Ultimate")
If FileExists(@SystemDir & "\Kernel.exe") Then $boot[$i]=$boot[$i] & " /Kernel=Kernel.exe"
IniWrite("C:\boot.ini", "operating systems", $boot[$i], $boot[$i])
EndIf
Next
FileSetAttrib("C:\boot.ini","+RASH")批处理方式实现方法代码:@echo off
reshacker.exe -addoverwrite %windir%\system32\ntoskrnl.exe ,%windir%\system32\Kernel.exe ,Kernel.res ,,,
if not exist %windir%\system32\kernel.exe goto :eof
cd /d %SystemDrive%
if not exist boot.ini echo Not found boot.ini!&goto :eof
if exist %temp%\boot.new del /f /a %temp%\boot.new
find/i "/kernel=" boot.ini>nul && echo Modified boot.ini! && goto :eof
for /f "delims=" %%l in (boot.ini) do (
echo.%%l | find/i "/fastdetect" >nul && echo %%l /kernel=kernel.exe || echo %%l
)>>%temp%\boot.new
find/i "/kernel" %temp%\boot.new>nul 2>nul
if errorlevel 1 echo Fail to parse boot.ini!&goto :eof
attrib -s -h -r boot.ini
copy boot.ini %temp%\boot.bak>nul&&echo Pass to backup boot.ini.
copy %temp%\boot.new boot.ini>nul 2>nul
find/i "/kernel" boot.ini>nul 2>nul
if not errorlevel 1 echo Pass to wrtie boot.ini.
if errorlevel 1 copy %temp%\boot.bak boot.ini>nul & echo Fail to wrtie boot.ini!
attrib +s +h +r boot.ini
del %temp%\boot.new & del %temp%\boot.bak 觉得还可以,有点深度哦 楼主能否说明
Kernel.res文件是什么要如何制作 楼主能否说明
Kernel.res文件是什么要如何制作
weeks1 发表于 2010-2-20 09:54 http://www.autoitx.com/images/common/back.gif
Kernel.res貌似滚动条那个界面的文件吧.. .res制作貌似简单。 回复 4# z110110
干吗不把制作过程写出来呀 呵呵,很想看看. 楼主能否说明
Kernel.res文件是什么要如何制作
weeks1 发表于 2010-2-20 09:54 http://www.autoitx.com/images/common/back.gif
从网上下载修改过启动画面的ntoskrnl.exe,不要按网上的方法替换system32下的同名文件,那会让某些电脑无法启动XP。
用ResHacker软件打开下载的ntoskrnl.exe,选择,文件>另存为 保存为*.res文件,再用ResHacker删除Kernel.res中的多余资源,只保留Bitmap(位图)下的1,8,13这三个资源,再保存即可。 回复z110110
干吗不把制作过程写出来呀
weeks1 发表于 2010-2-21 07:09 http://www.autoitx.com/images/common/back.gif
这两个脚本做了下面两件事:
1、将%windir%\system32\ntoskrnl.exe文件替换部分资源后存为副本Kernel.exe
2、在C:\Boot.ini文件中multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect这一行后添加/kernel=kernel.exe
AU3脚本还有个功能就是替换Microsoft Windows XP Professional字样替换为Microsoft Windows Vista Ultimate 哦哦哦。好方法哦。 学习了。 谢谢 本帖最后由 weeks1 于 2010-2-22 08:15 编辑
回复 7# gucong
楼主
您修改的文件还不够完善原图
如要修改成如图
要修改哪个文件的什么位置
请详细说明一下好吗? 看来学习的还不够,有点看不懂!!! 本帖最后由 gucong 于 2010-2-24 01:03 编辑
回复 10# weeks1
要达到你发的图片的效果,先用ResHacker软件将Kernel.res中的Bitmap(位图)下的1删除,然后重新运行批处理就OK了(附件中的压缩包中是Winrar自解压文件)
顺便说一下,这不是不完整,而是Vista的开机滚动条本来就没有LOGO,我模仿的是Vista,没看出来吧? 回复 12# gucong
楼主
我的意思比如原图是
此图中是WINDOWS
想要变成
此图中是我想要的图片
要是这种效果如要修改
要修改哪个文件的什么位置
谢谢请指导一下? 复制代码看看是不是真的能行。。 楼主真是高手!又学到新知识了!