
修改 .rc 部分的代码由 HAT 编写,还有 slore 提供的一些帮助,谢谢!
测试环境:Windows XP SP2
所用工具:ResHacker.exe、GoRC.exe
原理:ResHacker.exe 在命令行下修改、替换 explorer.exe
执行过程:1.ResHacker.exe 提取 explorer.exe 的 37 号 StringTable 为 .rc 文件
2.用户输入新的按钮文字(即修改 .rc 文件)
3.GoRC.exe 编译 .rc 为 .res 文件
4.结束 explorer.exe 进程、重命名 dllcache 下的 explorer.exe 为 .backup 后缀
5.ResHacker.exe 使用 .res 文件覆盖修改 explorer.exe
6.Start explorer
技巧:不输入文字,直接回车,可以移除「开始」按钮
截图修改.bat
::@ http://www.cn-dos.net/forum/viewthread.php?tid=42775
@echo off
setlocal enabledelayedexpansion
If not exist st37.rc (ResHacker.exe -extract %windir%\explorer.exe,st37.rc,stringtable,37,)
set count=0
set newname=
set /p newname=请输入:
type nul>"st37.bak"
for /f "tokens=1,2* delims=:" %%a in ('findstr /n .* "st37.rc"'
do (
>>"st37.bak" echo.%%b
set /a count+=1
if !count! equ 4 goto :next
)
goto :eof
:next
>>"st37.bak" echo 578, "%newname%"
for /f "skip=5 tokens=1,2* delims=:" %%a in ('findstr /n .* "st37.rc"'
do (
>>"st37.bak" echo.%%b
)
move /y "st37.bak" "st37.rc"
gorc.exe /r st37.rc
taskkill /im explorer.exe /f
set dllcache=%windir%\system32\dllcache
If not exist %dllcache%\explorer.backup ren %dllcache%\explorer.exe explorer.backup
If not exist %windir%\explorer_backup\explorer.exe (
md %windir%\explorer_backup
copy %windir%\explorer.exe %windir%\explorer_backup
)
ResHacker.exe -modify %windir%\explorer.exe,%windir%\explorer.exe,st37.res,stringtable,,
start explorer恢复.bat
@echo off
pause
taskkill /im explorer.exe /f
replace %windir%\explorer_backup\explorer.exe %windir%
ren %windir%\system32\dllcache\explorer.backup explorer.exe
rd /s /q %windir%\explorer_backup
start explorer下载地址: http://upload.cn-dos.net/img/780.rar
下载地址2: http://www.brsbox.com/filebox/down/fc/6870f67f2ec08e5a8ab85283b314d7d9
-------------------------------------------------------------------------------------------------------
以上修改方法是直接修改系统的 explorer.exe。还有另一种修改方法------ 加载另一个目录的 explorer.exe,修改注册表中的 shell 值指向这个 explorer.exe。跳至 14 楼
[ Last edited by tireless on 2008-9-21 at 08:49 PM ]

