17 12
发新话题
打印

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

很多朋友要求我写个详细的教程。一步步来吧,罗马也不是一天就建成的。
今天先讲如何把XP安装光盘的WMP8(8.00.00.4487 版本)剔除,直接替换为WMP9。
首先,把XP的安装光盘复制到硬盘的某个目录,如CDROOT,然后把\i386\下面所有以.in_为后缀名的文件用winrar解压到另外一个目录,如INF,里面全是XP安装的各种驱动程序和组件的安装配置文件,类似这样:
驱动器 D 中的卷是 soft
卷的序列号是 CCC9-2286
D:\iso\inf 的目录
2003-11-04 21:22 <DIR> .
2003-11-04 21:22 <DIR> ..
2001-08-31 15:57 15,768 1394.inf
2001-08-31 15:57 2,710 1394vdbg.inf
2001-08-31 15:57 35,330 3dfxvs2k.inf
2001-08-31 15:57 4,998 61883.inf
2001-08-31 15:57 51,742 accessor.inf
2001-08-31 15:57 6,444 acerscan.inf
2002-09-09 15:51 9,456 acpi.inf
2001-07-21 14:25 4,069 actc094.ini
2001-07-21 18:25 596 adcjavas.inc
2001-07-21 18:25 589 adcvbs.inc
2001-08-31 15:57 5,208 adm_mult.inf
......
然后打开syssteup.inf这个主安装配置文件。搜索“[Infs.Always]”字符串,就可以在[Infs.Always]下面发现WMP8的相关安装配置文件记录,结果如下:
[Infs.Always]
...........
skins.inf,InstallSkins-------->WMP8的外观模式安装文件
wmp.inf,Installwmp7-------->WMP8的主安装文件
wmtour.inf,DefaultInstall-------->Windows XP的漫游和教程安装配置
mymusic.inf,InstallWMPlaylist------->我的音乐的主安装文件
..........
这里我们只要对wmp.inf进行修改即可,OK,马上动手吧,打开INF下的WMP.INF,内容如下:
[Version]
Signature="$Chicago$"
LayoutFile=layout.inf
SetupClass=BASE--------》这个说明WMP8是系统的一部分
[BaseWinOptions]
InstallWMP7--------》这个对应回刚才syssteup.inf的相应调用“wmp.inf,Installwmp7”,也就是说安装程序将执行这[InstallWMP7]段内的相应代码。
[InstallWMP7]段内的相应代码如下:
[InstallWMP7]
CopyFiles =V7Copy.Core;所有要复制到系统的文件
DelFiles=V7Copy.RmvLegacy,V7Copy.RmvLegacySys;所有要删除的文件
UpdateInis=UpdateIni.DVDLinks.Rmv
DelReg =V7Reg.Reset;注册表里要删除的键值。
AddReg =V7Reg.Core, WMPUninstKey, V7Reg.Univ, WMPDelay.Actions, AddReg.Uninst, V7.RegPUI, WMPAddReg.PUI
;注册表里要写入的键值。
OK,现在我只需要关心安装程序把哪些文件复制到系统中了,转到刚才
[InstallWMP7]
CopyFiles =V7Copy.Core这个段内,看到如下信息:
[V7Copy.Core]
wmplayer.exe,,,97
setup_wm.exe,,,97
wmpvis.dll,,,97
dlimport.exe,,,97
说明共有四个文件被复制到系统,“97”是目标目录,等同于%systemroot%\program files\windows media player.
把这四个文件的信息先记录下来。
接下来,把下载的WMP9解压缩,同样打开里面的WMP.INF,对比一下它和安装光盘里的WMP.inf的差异(主要是复制文件方面的),如何对比我就不说了,你们可以自己摸索一下,结果如下:
wmplayer.exe
setup_wm.exe
wmpvis.dll
dlimport.exe
wmp.dll
wmpcore7.dll
wmpcore8.dll
wmpvis.dll
。。。。。
这些WMP8的文件都是可以删除的,因为安装WMP9时会把这些文件覆盖。
接下来,把WMP8版本的WMP.INF内容全部清除,然后写上这样的代码:
[Version]
Signature="$Chicago$"
LayoutFile=layout.inf
SetupClass=BASE
[BaseWinOptions]
InstallWMP7
[InstallWMP7]
AddReg =WMPDelay.Actions
[WMPDelay.Actions]
HKLM,"%KEY_WIN_CURVER%\RunOnce","OEM_WMPWMP9_Install",0x00020002, "%systemroot%\system32\MPSETUP.exe"-------》在安装过程中调用WMP9的安装程序MPSETUP.EXE
[Strings]
KEY_WIN_CURVER="Software\Microsoft\Windows\CurrentVersion"

保存后,在用compress.exe 压缩回wmp.in_,覆盖到\i386目录.。
接下来删除i386目录下的文件:(刚才记录下来的)
wmplayer.exe
setup_wm.exe
wmpvis.dll
dlimport.exe
wmp.dll
wmpcore7.dll
wmpcore8.dll
wmpvis.dll
。。。。。
然后把mpsetup.exe用compress.exe 压缩成mpsetup.ex_复制到\386目录。
好了,你们肯定有个疑问,如果删除了上面的文件,XP安装程序不是会报错吗?呵呵,当然会,不过,我们还必须做最重要的一步,就是记录XP安装文件来源和目标的两个文件:
DOSNET.INF:这是你在WINDOWS系统下执行SETUP时用到的,它实际是一个需要拷贝文件的列表。她告诉安装程序哪些文件要复制到C盘的临时目录C:\$ WIN_NT$.~ LS\i386。
TXTSETUP.SIF:这是你在光盘开机安装系统时蓝屏文字模式下用到的,它告诉安装程序C:\$ WIN_NT$.~ LS\i386里面的文件将会被拷贝到目标分区的哪里去。
好了,先打开DOSNET.INF,文件开头是一些目录的定义,不用管它,"d1"等同于光盘上的i386目录,"d4"等同于第2张安装CD上的compments\i386目录(如果是MCE和table PC版本,就要用到这个)
现在我们关心的是“d1”,搜索“wmplayer.exe”字符串,找到这样的一行:
“d1,wmplayer.exe”其意思就是告诉安装程序这个文件要复制,现在因为不需要了,所以把这行删除,依次把其他不需要的文件所在的行删除。并在里面加上一行“d1,mpsetup.exe”(告诉安装程序把WMP9的安装程序mpsetup.exe”拷贝到系统中。

下一步,轮到txtsetup.sif了,同样搜索“wmplayer.exe”字符串,把所在的行给删除,然后依次把其他不需要的文件所在的行删除。接着再加上一行:
mpsetup.exe = 100,,,,,,,2,0,0
其中100是文件来源,后面的2,0,0是目标位置。
“100”代表的是什么,看回txtsetup.sif的开头的相关定义就知道:
[SourceDisksNames.x86]
1 = %cdname%,%cdtagfilei%,,\i386
2 = "%cd2name%","%cd2tagfilei%",,\cmpnents\tabletpc\i386
3 = "%cd2name%","%cd2tagfilei%",,\cmpnents\mediactr\i386
4 = "%cd2name%","%cd2tagfilei%",,\cmpnents\netfx\i386
100 = %spcdname%,%spcdtagfilei%,,\i386,1
“100”等于安装光盘上的\1386目录,实际等同于安装过程中C盘上的临时目录C:\$ WIN_NT$.~ LS\i386。
那么“2”代表什么,看回txtsetup.sif的开头的相关定义就知道:
[WinntDirectories]
1 = "\"
2 = system32
“2”等同于目标分区的windows\system32目录
也就是说,这一 行代码的含义就是把来自安装过程中C盘上的临时目录$WINNT_LS$\I386\mpsetup.exe复制到目标分区的windows\system32目录.为什么要复制到这里呢?是为了配合上面在WMP.INF里面的程序调用:
[InstallWMP7]
AddReg =WMPDelay.Actions
[WMPDelay.Actions]
HKLM,"%KEY_WIN_CURVER%\RunOnce","OEM_WMPWMP9_Install",0x00020002, "%systemroot%\system32\MPSETUP.exe /q:a /r:n"-------》在安装过程中调用WMP9的安装程序MPSETUP.EXE

否则,就会出错哦!
OK,所有的工作进行完了,后面的刻盘我就不讲了。

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

好像跟你发的英文帖子不大一样

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

我要到哪里找compress.exe这个文件呢?

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

引用:
下面引用由hongchen2003/11/17 11:22am 发表的内容:
我要到哪里找compress.exe这个文件呢?
用自带的makecab命令
makecab wmp.inf wmp.in_

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

按照以上步骤做出来老会弹出这个对话框,有没有办法屏蔽?
附件: 您所在的用户组无法下载或查看附件

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

啊啊,我一直想怎么关掉系统还原,年倒自动关了,hoho

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9


TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

精品!!!
好好学习,天天向上!

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

我按此方法做成了,但是我的全自动安装到了最后安装WMP9时就要手动了。
好好学习,天天向上!

TOP

【教学】微软集成光盘教学系列(1)WMP8替换为WMP9

""""接下来,把WMP8版本的WMP.INF内容全部清除,然后写上这样的代码:
[Version]
Signature="$Chicago$"
LayoutFile=layout.inf
SetupClass=BASE
[BaseWinOptions]
InstallWMP7
[InstallWMP7]
AddReg =WMPDelay.Actions
[WMPDelay.Actions]
HKLM,"%KEY_WIN_CURVER%\RunOnce","OEM_WMPWMP9_Install",0x00020002, "%systemroot%\system32\MPSETUP.exe"-------》在安装过程中调用WMP9的安装程序MPSETUP.EXE
[Strings]
KEY_WIN_CURVER="Software\Microsoft\Windows\CurrentVersion"
保存后,在用compress.exe 压缩回wmp.in_,覆盖到\i386目录.。""""""

wmp8.inf理由那么多内容只要这几段就能行了吗?哪位大哥做出来过了?

TOP

 17 12
发新话题